I sometimes find myself hacking together a quick console-based or vanilla JS prototype for an idea and then just stop there because messing with different cloud providers, containers, react, webpack and etc is just soul draining. I remember when I was 14 I'd throw up a quick PHP script for my project, upload it to my host and get it up and running in just a few minutes. A month ago I spent week trying to get Cognito working with a Serverless API and by the time I figured it out I was mentally done with the project. I cannot ever seem to get over this hump. I love working on side projects but getting things up and running properly is just a huge drag these days.
Me and my team manage many services and web apps at work. We only used it in production on just one of them and it works very well. The most difficult part is convincing a bunch of pure frontend guys without much backend experience to use it.
Other than that, I use it in several of my own side projects.
Confession: it took me like two damn hours the other day just to figure out how to get TS code that included Node modules packaged for the browser. There was a lot of advice that was wrong or outdated or otherwise didn’t work. I’ve written JS since before jQuery was a thing and have done some damn good work in React and React Native, but hadn’t dealt with bundlers and such manually. Phew boy, it is a mess.
Yes my frustration is the entire frontend in x framework now requires nodejs by default. I develop with Javascript (nodejs), Erlang(Elixir) and Ruby(Ror and Jekyll). The one pain point is managing the nodejs dependencies in these projects.
It is very hard to control your dependencies when you use a framework or a transpiler in JS. They bring in tons of other packages which have their own dependencies and so on.
This has also opened a new dangerous attack vector where hackers take over a small forgotten component used by many nodejs packages and inject malicious code into projects without anyone noticing.
It ended up being some arcane combination of config for... webpack, I think? Which is really weird because it seems to me "bundle all this in one file for web" is one of the countable-on-one's-fingers most-common use cases for a JS bundler, so should probably be available with a command line switch and no config file at all.
If I've found the right file (I was just trying to slap something together to try out a couple node modules in the browser... so much for that being quick & easy) then I ended up on an es5 target for TS, with "amd" module output. I've also got about a 12 SLOC webpack config file that specifies a single output "bundle.js".
The worst thing about troubleshooting shit like this is it's rarely clear what's broken. Is some part of the build choking on a bad ES-version + module combo (but just producing a broken build rather than, you know, fucking telling me that)? Is it a bundler config problem? Is Node at the wrong version(!)? So the troubleshooting process rapidly becomes combinatoric, which is an awful experience. You google some of these problems and see that everyone else is clearly going through the exact same "try one combination, see what happens, try the next" brute-force approach as you are. Meanwhile, again, the common use cases for these tools seem easily enumerable and quite tractable, so why they're driven indirectly by smashing together a bunch of implementation details until they work, rather than by explicitly stating which of a small number of common desired outcomes one wants and letting the build tools figure out how to make that happen in all but the most unusual cases, is baffling to me.
yeah I think I'm in the same boat, just not nearly as far as you. Thanks for the tips, I will give webpack a try (I was trying to use Parcel, but havent looked into browser-side yet)
AWS is not a great place for small projects that you want to set up quickly. There are a lot of options with a much more lightweight setup experience: zeit/vercel, netlify, digitalocean, firebase.
> A month ago I spent week trying to get Cognito working with a Serverless API
Do you actually need Cognito and a Serverless API?
It's a drag because you put yourself requirement that make no sense with your project. The goal of theses tools are to make you go quicker, if they doesn't, it should be your first warning that they aren't for you right now.
I'd be lying if I said this wasn't the case for myself :) All the new stuff also drains me and I'm a lot more motivated to hack up stuff in PHP and jquery for these side projects. I think you shouldn't let "the modern way to do things" stop you from hacking up prototypes in whatever way you want.
I'll say though, after having done a few side projects with modern SaaS/stack -- e.g. Netlify, Heroku, nodejs -- it does start to look like to me that it's a time trade-off. When I embrace the JAM stack with static site gen (with Svelte/Sapper) and an API layer (nodejs on Heroku), what I'm doing is trade the time to get started (more time/effort) with less maintenance and deploy effort later. But if you have the passion to hack up something right this moment and can't deal with that drag to kick off the project, and you don't know if it's a product that'll work out and get traction anyway, by all means hack it up in PHP and jquery.
The funny thing is, I love to setup a backend and AWS environment and then get stuck on building an UI (dreading anything js related). I guess that why we should find others to collaborate with :)
I feel this. When I was younger, I would focus more on just getting something working, and now I feel more the need to do things "the right way" since I know better. I think I need to get back to just getting things working.
Recently I was able to finish a working prototype for a tiny side project and I skipped a few things that I would have considered "the right way", like even a good code structure, it went well and you know what, at the end, my code was a bit better structured, it was closer to the "right way" than I thought, it works well and each time I works on it, it get a bit closer to the "right way".
It made me realize that the "right way" is also a question of circumstance. The "right way" exist for one thing, avoiding some kinds of issues, but a side project is often quite simple, and most of theses issues won't happen, you most likely won't gains anything doing theses, so is it really the "right way" then?
It was hard to write that badly at first, hell my server side code is still mostly a single file, but most of my code took only a few hours to write, it's so easy right now to just erase a part of it and make it better. The frontend is using React, and at first it was a single big component, again the wrong way, but that component did something and it was working. Once I got some duplication in it, well I moved some stuff to another component. I could have done that earlier, I knew I would have duplication there, but I would have lost time making another component if I had abandoned the project (and I would most likely have if I had done everything "the right way").
So yeah, I'll keep doing it that way for now, doing it the bad way until I actually need the right way.
I feel you. And even if you get everything to run well on a VPS or Netlify, opening it up to a big user base, limiting liability and generating income is another huge battle. I’m working on a side project I want to transform into an entire self-sustaining business at the moment. When I first had the idea, I got a prototype of the key parts up and running in less than a month. Now it’s been like a year and I spent my days optimizing webpack chunk sizes, trying different pwa cache busting techniques, reading Stripe-integration docs, studying international VAT schemes, legal requirements, ...
The step from zero to product is way smaller than the step from product to law-abiding, income-generating service-providing business.
Edit: For those of you looking for a way to get simple prototypes working without having to use opinionated frameworks like Laravel or going down the JS rabbit hole, try Flask (in combination with SQLAlchemy and Marshmellow if you also need a simple ORM). Full flexibility, can be learned in minutes and you have the whole freedom of Python to do what you want.
Nice to hear I'm not alone, I am starting a similar journey myself. Any tips on minimizing the legal exposure?
As for the VAT, I am leaning towards paddle instead of stripe, because they take care of everything tax related (for a bit bigger piece of pie of course). Any thoughts on this?
I’m EU-based and my business is going to be B2C SaaS so these tips might not help you a lot. To minimize legal exposure the safest bet is to form a limited liability company wether that be a Spanish SL, a Dutch BV ir a German GmbH. Usually these also have a smaller counterpart which doesn’t require as much capital but still provides you with limited liability. If you need an US based corporation Stripe Atlas might also be of interest to you or if you need an EU-based one Estonia offers something called an eResidency and lets you create an EU business from abroad. Apart from that having an account take care of your taxes or at least proof-read your yearly filings seems like another step to limit you personal responsibility, even if a bit expensive.
As for VAT, I’m focusing on the EU market at the moment. EU law is that all SaaS B2C sales have to pay VAT in the country where the client resides, luckily there’s a process called mini one stop shop which allows you to file your VAT taxes in one EU country (while still indicating the country of every sale) which will then take care of the redistribution of the VAT taxes (a similar procedure exists for non-EU businesses who have EU customers, searching for EU VAT on e-Services should help you get started). With Stripe that means creating a taxId for every country and matching that with the country of residence my users have to provide on checkout when I create their session in the backend. Sadly I haven’t found any good applications that then take care of everything so it’s probably going to have to be a mix of csv importing everything into accounting software and handing everything to an account. It’s a bit frustrating tbh because it looks like accounting will be the single biggest expense in the initial phase of the business. So if anybody knows of a good solution for EU-wide SaaS B2C sales with Stripe I would be happy if they shared them. Even Quaderno and the like are not really feasible if you’re product costs less than 5$/month since they base their pricing on the number of sales.
Thank you for a detailed answer! Yes, I'm based in EU, but the customers could be from USA, AUS, India,... I am hoping to address all (well, most) of the markets from the start.
Btw, it might make sense to contact Quaderno (/others) and describe your pain point, they might be able to offer some solution.
Was in the same boat (regarding the Javascript ecosystem) until I discovered NextJS. It's pretty opinionated, but lets me get fully functional React sites up and running in with sensible defaults in minutes. Not exactly as clean as PHP, but for quick projects, it's removes a substantial amount of overhead.
This is why I still love Ruby on Rails. I can rapidly build something robust and throw it up on Heroku with no issues. I recently built a little thing for myself and had it built and hosted within a few hours.
Rails 5 with webpacker and turbolinks strikes the perfect balance between classic and modern web dev imo.
100% this. So much environment complexity these days before you get to Hello World. Command line, install this and that, mess with configuration files and on and on.
Like you, the last quick prototype I did was all html and js uploaded to a shared hosting (https://arcadejack.com). I would like to get back to building simple apps, but the barriers are higher than 20 yrs ago. For my current side project I'm using PHP and hired a developer online to help me with initial boilerplates.
A Node basic backend project is pretty simple. I don’t come across any complexities really. The most would be the web server in production. However that is unfair as I am familiar with Apache and Nginx because of PHP.
Something like React is almost plug and play at this point. It builds into a static site that can be uploaded any more.
Just go back to using PHP (or sth similar like Rails or Django).
Serverless, everything-in-javascript, jamstack etc. are fads that are currently overhyped. (There are of course use-cases where they make sense. But for most project having a normal backend is clearly superior and much simpler.)
I have a server at home that I use for exactly that: Small prototypes/scripts I hack together and want somewhere hosted.
That, or I use heroku/a private k8s cluster on digitalocean when it's a tad more serious, that I just throw the docker container on and have it over with.
I’m running into some of the same issues working with cloud native applications. The tooling and observability just isn’t there yet. I think the future is bright for the tech but it’s just very early. Fighting the AWS console is the worst.
I picked up reactjs as the framework, and firebase services for the backend. Life becomes much easier. I tried Vercel & Render, both are good alternatives.
Bug report on the site itself: with the way you’ve styled both body and html, body is a separate scrolling pane from the document scroll area, which causes the header and the “give feedback” buttons to sit on top of the scroll bar, and breaks keyboard navigation (arrow keys, Space, Page Down, &c.) until you focus the body (by clicking on the page or with Tab). A simple additive way of fixing this is to set `overflow-x: unset` on at least one of html and body (if you just do one, it actually doesn’t matter which, because html and body are a bit special), but removing the offending overflow declarations altogether would be better. A top-level `overflow-x: hidden` is generally a bad idea anyway—if it changes anything, it suggests that you’ve got some other styles somewhere wrong (though there are one or two genuine cases where there’s no good alternative), and doing things that way invariably ends up going wrong and truncating important content sooner or later.
Haha, you made my day Chris! This issue bothers for quite a long time, and I just didn't know how to fix it. In fact, I thought this is just some css issue, and didn't affect the functionality, so didn't invest too much time on it, also because of my procrastination :)
I started to build IndieLog (formerly Lonely Dev) since the lockdown to fix my own problem. The other project Backlogs is like a by-product while building IndieLog.
I never did something like this, putting myself in the public. It sounds scary. Indeed it was in the beginning, but it's an incredible journey so far!
Nice looking site and product! I watched your drag and drop demo for the kanban board. You may consider having a “best of” at the top, I wouldn’t watch a vlog because of the time involved, but I would definitely watch a couple of top rated videos from your journey where you talk about pivots, big feature demos, etc. you could manually curate the top ones for now and influence them with thumbs up and view as there are more user metrics. Good luck!
You might also take a look at how popular influencers use Instagram Stories to collect throughout-the-day updates into cohesive stories across days and weeks.
IE: "My trip to Cabo" might include 1-2 stories out of 10 posted that day, but they are the user's favorite and tell a cohesive story.
Yes, we kinda have that feature, but in a different way. As most of our members are bootstrapping their own product. Any video if it is related to a particular product, it can be attached to the product. Like our member David creates a product called Remake, all related videos can be linked to Remake in this page https://indielog.com/product/remake
I love the thought you covered in your first video about "why not YouTube?", so best of luck with building a more specific community.
I think some will say that you'll lose a sense of discovery by not being on one of the largest video platforms, but you'll gain an opportunity to build something from scratch and see what you can cultivate. It really comes down to your goals/intent, and I think you did a great job of explaining your choice so far!
Thank you Joseph! It feels amazing to build a niche community out of nothing.
Also it's interesting to see most of our members never did vlog before. But they still love to share their updates on IndieLog. I think it's because people feel that there are like-minded people around. You can't get the feeling by posting a video on YT.
Yes, 2 minutes is like a standup update. Our members also think the limit is very helpful to keep them concise. A good way to practice speak in some sense.
The best thing so far is definitely making lots of friends around the world. We can see each other, hear each other. It's the feeling that none of those text-based forums can give.
Multiple people here seem to be thinking this is recordings of the actual building of side projects. Rather, it’s videos not more than two minutes long, mostly just a person talking to the camera about the work they’re doing.
Yeah even I thought it would be concise demos or screen recordings of everyday progress but it’s just person talking. Is there a blog or Youtube channel which slowly builds a project which you can follow too?
There is an in site IDE at gif.com.ai and I was thinking about recording a few demos of how to build gifs using it. But I thought it would be better to contact existing computer graphics bloggers who post videos. It’s hard to both build an app and vlog about it full time. It’s not like you can just stream your screen.
(TimeSnapper developer here) — you can use TimeSnapper to continually screenshot your work. Run it together it creates a super fast movie.
For the purpose of indie log it might be sufficient to handroll a custom script that takes the snapshots and then use ffmpeg to convert them to a video.
Great job! Would like to see you on indiehackers podcast talking about your journey, maybe a bit early for this but hopefully soon.
I have a suggestion to add some kind of pagination to the video so after one video you go to the next one without going back to the pain profile page, or maybe some kind of playlist, I think would be wise to focus on making the video experience very good before adding the audio feature.
good luck
Hey I was just thinking about doing something like this, but just on Youtube.
I was recently on Indie Hacker's podcast and got a lot of followup emails from other engineers asking questions and it was cool talking with random developers.
Is there a way to post a link to a youtube video on IndieLog so I can double dip?
Hmm, I think that would be cool to have. Indeed some of our members are Youtubers as well. It would be a duplicate effort for them to upload the same thing on IndieLog. Thanks for sharing this idea. I will definitely see how I can make it work!
Backlogs is a cool idea! But I feel like it really wants to be a Trello Powerup. Show a popup asking for CC info after install, using Stripe Checkout. Then give people a CNAME record that displays a public board in an iFrame, available at backlog.yourservice.com. This would be like a 3-5 day project, instead of weeks, to duplicate most of Trello's functionality. And you'd benefit from the visibility in Trello's marketplace. You could really simplify your implementation and still validate the idea. Just a thought!
That's so true! If I heard Trello Power-ups, I will definitely give it a go.
Actually for Backlogs, some features are already taken from IndieLog, like the upvote and commenting. I just implemented the roadmap boards and the changelog page.
Haha, I built the Backlogs on the side, so it is a slow process :)
years ago, I'd proposed (to the 5 people who used to listen to me!) that we put together a protocol to be able to tie audio files (for comments) to specific commits in a subversion system (2006 maybe?).
perhaps if GitHub gave us a way to do media attachments with particular commits, we could let people embed instructional/teaching moments in their code bases...
not suggesting GitHub is the only player out there, but may be big enough to give this a try as a side project for some of the internal folks.
This idea is mind blowing!!! We can make Github more fun, like giving users options to attach audio, or video along with the commit. World nowadays is no longer text-based, it needs more context!
yeah, exactly. a nice thought. it becomes an extension of stack overflow experience a bit too. plus contextual relevance is very high, as mentioned below. use ML to connect topics of code and then create powerful network of contextual coding literacy through engaging media clips. a wild ride, also of intrigue.
Awesome! It's not easy to put yourself out there like this, but it will make a difference for somebody who will either take value from your videos or be inspired by them (or both!). Kudos!
Nice. I did a test project and just let screenflow record for hours - I think I have around 26 hours of stuff, but ... it's definitely not fit for consumption or learning from. I look back and think I could edit it down some and make it useful, but then think I may just start the next project with a more focused eye on the recording in the first place.
I've been tempted more than once to vlog programming, but what do you do about the (frequent, for me) times where you're just searching stackoverflow or reading docs or barking up the wrong tree? I'm more tempted to write the thing, then vlog starting over from scratch as if I know what I'm doing.
You are right! We may spend days and hours on triaging some bug, but it only needs one-line change. The researching and investigation are more valuable than the final deliverable!
For me, I will basically say anything from getting the idea, to doing some research, to implementing, then to demoing it. It's all about the journey!
Hi,
I just tried to login in the site via Github, but a popup flashes and nothing happens.
I've tried the Feedback tool (https://feedback.indielog.com/post/), but this page gives me a 404.
Thank you
Very cool, and great presentation! Have you considered getting on a service like Twitch or YouTube? Not so much as a way to produce the step-by-step snippets you're already doing, but to document yourself working in livestream, with all the upsides and downsides it entails?
I want to try livestream, but my 19mo daughter would not allow me to do that.
Actually as you can see, most of my videos do not have good lighting because I recorded them in the evening time after my little daughter went to bed. In the day time, I only got fragmented time slot so I can add things, whatever bug fixes or new features, little by little.
So blocking hours to do livestream would be hard for me as for now :(
Would like to see if we can bring the live streaming and code sharing to our platform! Wow, you just opened up some hidden potential to IndieLog. Thanks!