Love it. Polypane gets better and better! Great job, Kilian!
HN user
appliku
Maker of Appliku.com Python Apps Deployment System
A post that I saw in our community, decided to share it here and will invite the author here.
"The app allows people to start micro podcasts to share stories/ thoughts with small groups of friends. It's great if you have friends all over the world or just want to have deeper async discussions.
The app uses Django Rest Framework for the entire backend and it's hosted via Appliku!"
Yes absolutely. Ops people love spreadsheets and it is done in admin easily.
Also, with Admin site you can limit their ability to screw things up massively.
The amount of stress and time waste you remove by giving them pretty user friendly admin with such low effort is astonishing.
This is a great idea. Have you ever written about it somewhere? I would like to read and share with others. I know a few people who could benefit from that.
Thanks! Super happy to hear that it keeps being valuable and useful for you! Keep deploying
After many years of experiments i came to the same exact conclusion.
In 15 years I haven't seen a single case when splitting a project into multiple apps brought anything but pain.
Also, splitting files like models into packages is also a great approach. 6 months ago I found myself with models.py, API.py (my alternative for API views vs regular views) and serializes.py each over 3k lines of code. Spent 3 days splitting them into small files by topic. Way easier to work.
I also wish docs suggested that it is an option and better to split them earlier. Because it is so easy to just "add one more model to the end of the file, what can go wrong?"
You understand what goes wrong after 2-3k LoC
The common wisdom was always not to rely on it for any of your users (for far too long) and build something separate as soon as possible. But i must admit that lately it got much much better. I only recently discovered that you can have multiple admins with it's own admin models. So way less hacks.
I actually want to try build an app just to see how far I can push it with Django admin and see how hacks it will end up.
For this case, Django apps usually pick services like Sentry, and it is the app's responsibility to integrate with them anyway, so there is nothing we need to offer.
Although the idea around some built-in analytics is still on my mind. But it can easily become a huge pain for high-load projects, so I am not rushing this feature.
Hey, Thank you for your kind words.
Interestingly, when I started building Appliku, there was only Forge and Hatchbox, and that was enough of a validation for this type of service.
In the second year, a few more services popped up.
In the third year, the market was flooded with various services in this space. All of them were and still are generic for all languages and frameworks. The most popular niche I've observed is on top of AWS, but still – for any programming language.
Back to Appliku and Python/Django niche: The reason I picked this niche and STAYED in this niche is that not only I can build the service for them, but I also can support users of the Python/Django stack better, answer most of their questions, and help with problems from on top my head very fast and help them achieve their goals quickly. I also know NodeJS stack and NextJS, and we have a small number of such apps deployed as well. Appliku's dashboard is NextJS too.
But I can't do such support for other programming languages and frameworks.
Regarding customizations and trying to fit all cases into one platform: With a focus on Django comes a narrowing down on the expectations and requirements for the deployment process. Django projects are monoliths that, most of the time, either fit the standard Dockerfile or need a few tweaks to one.
The biggest category of requested customization so far was adding different types of databases. Thanks to docker, this is relatively easy to add.
And thanks to this low variety, the whole service is pretty easy to use as we don't need to offer/allow a million ways to configure your app compared to what other PaaS are trying to do(especially VC-backed) because they need to cater to everyone.
Thanks again, TGIF, and have a great upcoming weekend!
Thanks for jumping in, Alexander! Happy it works so well for https://unicornplatform.com !
No load balancing, although planned. Can put cloud flare or other CDN on top of it.
Databases. Our database offering doesn't try to compete with other managed DB providers where they have tons of people busy with databases alone. And we have only me to code everything. So super durable and high availability databases is not our game at least for now.
We provide backups and few tools around databases. That's usually quite enough for smaller project, staging environments, but for High Availability best to pick RDS and stuff like that.
Fair point, adding a TODO. Thank you!
That's actually I am curious to hear about. What monitoring service are you interested in?
I have a guide about DataDog setup in progress. What else?
Understood. Thanks a lot for your time documenting this. Super valuable!
Thanks for all kind words.
I am curious what makes it tough to deploy on render?
I didn’t do it alone, the marketing website, illustrations, logo, testing and a lot of product work was done by my cofounder @krisindev
But all of the coding of the app itself yes - that’s me :)
Would you like to join our discord https://appliku.com/discord and so I can ask you a million questions about your struggles with deployments? Always curious to hear what other devs are doing.
Have a great day!
Hey! Yes, it takes root and sets up everything needed. Nothing happens to server if you stop paying, I will be just emailing you and asking what we could do better :) You won’t be able to create apps or add more servers until you resume payments though, but nothing gets locked out breaking your apps etc.
In fact you can add a server through custom server option, then remove it from appliku and remove appliku keys. Free approach to quick server setup :) Appliku doesn’t leave any trace or back door or additional software on your your server. Only ssh authorized keys.
Also none of your data except for build logs and everything related to configuration is stored on our servers either.
Hey! Cloud66 looks cool.
Ping me via live chat or our discord, I am sure it will be interesting to chat/talk!
Pure docker under the hood.
There are some plans for clusters, but there is plenty of work ahead even without them.
thanks!
It uses docker under the hood, you don’t have to work with docker locally. But your app needs to respect environment variables and have a Procfile in the root with a list of commands to run your app.
Example: https://gitlab.com/speedpycom/speedpycom-backend/-/blob/main...
Thanks for kind words.
It is indeed never-ending work of improvements, and catching up with versions of pieces of software.
Even when I have done something and I like it, 2 weeks later I come back and find how it can be massively improved
Feedback from happy users reminds me why I am into that and fuels my enthusiasm to keep going =)
If you are doing Django or Python https://appliku.com
Free tier for deployments + AWS Free tier = year or free and convenient hosting
Hey!
There is a heroku config vars sync, so you can keep using Heroku Postgres, but moving the app itself out of there.
Your vars will be in sync, so when heroku rotates credentials they will be quickly applied to your app deployed with Appliku
You can get built databases deployed with Appliku as well. No reason to go broke on a small side project
3 years ago, I tried Heroku and was quite impressed by it. Although the price is prohibitive for a hobby project that needed resources but wasn't generating any revenue, I had to start seeking other options.
Ended up developing my own Heroku but focused on Django deployments.
Three years later, it works like a charm and has many happy folks who thank me for making it.
Meet Appliku: https://appliku.com
That's pretty cool. I always thought animation making should look like this, not million of layers and dots. GJ!
Thank you Django. that’s a great news.
14 years ago someone helped me discover Python and Django.
I started from django official tutorial and never changed the framework of choice.
It was my hobby, my career, my tool to put the food on the table.
12 years later I have started building a way to solve deployment question.
started from bunch of scritps. today I have made cost effective tool to deploy Django projects and pretty much any python app on AWS/Digital Ocean
it is like heroku but uses you own cloud account and not expensive at all.
Oh yeah i totally understand what it means having so much projects – every minute spent on manual task becomes an hour if done on all projects.
Let me know if you need another set of eyes or discuss it options. https://twitter.com/KostjaPalovic or in our discord https://appliku.com/discord
In a nutshell it is delegating all this manual work to a service.
I was happy with manual deployments for a while too, until i got fed up with this activity.
It is just a question of quality of life, automation.
Also, yes - there are tutorials, but what if you are not willing to spend time learning it even if you have tutorial?
Most of developers have a very high pain tolerance for manual tasks and search for yet another tutorial how to do X by themselves instead of delegating a task to some app or service.
Not everyone is like that.
Built during the project build and uploaded to s3 and served via CDN.
Thanks A LOT for kind words.
So first I am thinking what is the best way to offer scaling. There are so many ways how it can be done and in other comment threads there are hot debates happening about that. It is still an open question.
I was thinking about tailoring more features for django too. Not only price is different, but I picked Django for a reason. It is a great suggestion about metrics per route. I haven’t thought about it before.
Integration with AWS services – Yes. That’s why initially i had a wide range of recommended Policies to include in AWS credentials. My goal was to make automation around creating not only app but all auxiliary services without the need for user to deal with AWS manually.
basically let appliku orchestrate 3rd party services in order to get the “recommended setup”.
So not only I have limited positioning to Python/Django niche, but next tools that will appear will make people using this popular framework way happier by taking away their pain.
Thanks for your suggestions. Hope to speak with you in our Discord :) https://appliku.com/discord
As a developer you only pick your repo and pick a server size and region.
If you need customization you can make your own dockerfile that will be used to build your image.
If you need to move to another server - you provision another server through appliku interface and change deployment to happen on that server.
Appliku itself is deployed with help of GitLab CI and can be redeployed to another location pretty fast.
Hope i was able to answer your questions.