[HN Gopher] Ask HN: Companies of one, what is your tech stack?
___________________________________________________________________
Ask HN: Companies of one, what is your tech stack?
Hello dear HNers. Each year for the last two years I have asked
companies of one, meaning companies that consists of only one
person of what tech stacks you use. Feel free to link to your site
or project for show case if you want. Here is the last two
threads: (2020) https://news.ycombinator.com/item?id=25465582
(2019) https://news.ycombinator.com/item?id=21024041 What is your
tech stack? Why did you choose it? Do you think your choices had
any impact on your success? Thanks in advance!
Author : ecmascript
Score : 242 points
Date : 2021-08-25 07:54 UTC (15 hours ago)
| jcroll wrote:
| Audiobook meta search: https://www.audiobookmate.com
|
| - Backend: Flask + SQLAlchemy + Celery
|
| - Frontend: Angular + Bootstrap
|
| - Database: MySQL + Elasticsearch + Redis
|
| - Deployment: Kubernetes on GKE
| sjpj wrote:
| Just got everything running about 2 week ago for my jobs site,
| https://waitwhatdoyoudo.com.
|
| > What is your tech stack? Frontend - React Backend - Django
| (Python) Database - Postgres All hosted through Heroku.
|
| Also, Data Pipelines - Airflow (Python hosted on GCE) Analytics -
| Google Analytics Email - Mailchimp
|
| > Why did you choose it? I am a Data Engineer by day so regularly
| use Python and GCP. Where I could, I chose tools I'm already
| working with to limit the learning curve of using them. Where I
| couldn't, I chose whichever option was most hands off.
|
| > Do you think your choices had any impact on your success? We
| will see. After I get the current feature I am working on, I plan
| to transition to marketing the site rather than working on the
| site. Success will be whether or not I have to jump back into
| maintenance mode.
| tonyjstark wrote:
| Decision Log SaaS with Slack Integration:
|
| * PHP with Laravel + Postgres on the back
|
| * Blade + Livewire on the front
|
| * hosted on Clever Cloud
|
| I chose it, because it's a stack where almost all problems have
| already a solution because others had it before. Also, and this
| was really important at the time: There is just so much built in,
| PHP+Laravel is a powerhouse for rapidly developing MVPs.
|
| I'm still pretty happy with it. It can take you pretty far if you
| keep your code base clean, use all the existing tooling like
| static analyzers, code formatter, and write tests. While success
| is still moderate, I don't think I could have done it with a
| different Tech Stack, at least not in the same time-frame and
| with the same confidence.
| OoTheNigerian wrote:
| OP and respondents can you update your question and the answers
| to include mention the scale of the business in terms of traffic,
| customer served, revenue.
| gizdan wrote:
| On a similar note, has anyone used a pre-built "saas starter kit"
| or the like? If so, how is it going? Do you regret using it?
|
| Reason I'm asking is because I'm trying to write a new app from
| scratch but I'm getting demotivated having to implement things
| like users, organisations, and other things that is essentially
| just re-inventing the wheel.
| norbert515 wrote:
| There is www.divjoy.com which seems promising (haven't tried it
| myself though)
| makeee wrote:
| I made https://divjoy.com, which was mentioned by the other
| commenter. I'm obviously biased, but I'd say about 95% of users
| I talk to say they feel it saved them significant time. Of the
| people that request a refund, the issue is generally that they
| aren't happy with the UI kit (I give them Bootstrap, Bulma, or
| Material UI, they want Tailwind instead) or the database
| integration (I give them Firestore, they really want something
| relational). So basically, boilerplates can save you time but
| make sure you're still using the appropriate tech given your
| project and pre-existing knowledge. Happy to answer any
| questions.
| TekMol wrote:
| Great thread!
|
| I have a question for everybody who uses Laravel or Symfony:
|
| Did you compare it to the other one before you made a decision?
| What made you decide on the one you are using now?
|
| I also would be interested in the same question regarding Django
| and Flask!
| f6v wrote:
| Does it even make sense to "compare frameworks"? I've got an
| impression they all do more or less the same and it's a matter
| of preference really.
| codingdave wrote:
| Wouldn't that be exactly the reason to compare them? If both
| work fine, but they are just different, the comparison helps
| you know which you'd prefer.
| raihansaputra wrote:
| Personally I think comparisons are useful not for the
| framework itself but the ecosystem. Available libraries,
| resources for common scaling/implementation problems,
| available consultants, etc.
| [deleted]
| mgreenleaf wrote:
| Document generation from Word Templates (yakdocs.com) & stripe
| analytics dashboard w/ SQL queries (yak-mu.com), both use Kotlin
| on the JVM w/ Java WebToolkit (https://webtoolkit.eu/jwt) because
| of familiarity, kotlin's expressiveness to share components & so
| that everything is written serverside; OpenBSD as the base
| operating system because of simplicity and good defaults.
| bouncing wrote:
| Postgres -> Django w/Graphene -> Vue.js w/ Apollo
|
| Breakfast of champions right there.
| raihansaputra wrote:
| Do you leverage types on the FE from Graphene/GraphQL?
| davidbanham wrote:
| I run https://takehome.io and https://clubman.app on the same
| stack.
|
| Backend in Go with a simple MVC pattern, no framework. All data
| in Postgres. Front end is server rendered HTML using
| MaterializeCSS for components, migrating to TailwindUI.
|
| Hosted on GCP using Cloud Run, deployed using the gcloud cli
| orchestrated in a makefile. Database is a Cloud SQL instance.
|
| Google Cloud Tasks for the message queue. Amazon SES for
| transactional emails and S3 for blob storage.
|
| I have written a LOT of single page front ends over the years. I
| think the decision to go back to plain HTML templating has made
| it dramatically faster to add features. Same for the switch from
| microservices back to a well constructed monolith. I can just get
| right down to the feature I want to build or the bug I need to
| fix without wrestling the plumbing.
|
| Go has also been wonderful for keeping things simple. I was
| always tempted to make things "clever" in nodejs.
| BilalBudhani wrote:
| Talent schedule management system: https://www.flowboardpro.com
|
| - Server: $5/month Ubuntu server from DigitalOcean
|
| - HTTP Server: Caddy
|
| - SSL: Caddy
|
| - Backend: Ruby on Rails
|
| - Database: PostgreSQL
|
| - Frontend: Vanilla JS + Vue.js + Inertia.js + Boostrap
|
| - Email: Mailgun
|
| - Storage: S3 (very low usage)
|
| - Backup: Daily on Dropbox using rclone
|
| I'm not actively working on this anymore but I've users from a
| couple of organisations using the product which generates a good
| passive income
| nudgeee wrote:
| For my side company I design and build audio electronics for DJs.
|
| https://cardinia.net/
|
| Here is my tools & workflow:
|
| https://nudge.id.au/v5/img/Cardinia-Electronics-Workflow-202...
|
| Professional CAD tools are not cheap, so I'm basically breaking
| even. I'm mainly doing it for the love it -- I love to create
| things to inspire others to also create.
|
| Luckily I have a full time job to keep me going :)
| ecmascript wrote:
| Tell me about it, I also use some professional CAD tools
| (Revit) but on my day job.
|
| I hate to say it, but maybe no one would really care if you
| would pirate it? It just doesn't seem right to spend so much
| money on such expensive software that is probably that
| expensive due to big business using it and no competition.
| gpas wrote:
| Looking at the workflow I guess it's SOLIDWORKS.
|
| I used to pirate everything, but is it a solution? In the
| past perhaps, I wanted to use expensive software, I was
| experimenting, didn't have the means to buy a license, and
| there weren't many alternatives to mainstream software,
| either proprietary or free. But nowadays things has changed
| for the better, so I try to build my workflow around what I
| can afford.
|
| On a tangent, in my opinion, the advent of crazy cloud
| subscriptions have stimulated the community to find
| alternatives and promote more sustainable software. GIMP or
| Blender wouldn't be what they are today if everyone kept easy
| pirating Photoshop or Maya for example.
|
| To op, if SOLIDWORKS is draining your pockets look at these
| alternatives[1], it's not my field, I can't say anything
| about them.
|
| [1] https://expertratings.net/solidworks-for-free-and-
| alternativ...
| nudgeee wrote:
| I've managed to find some middle ground by taking advantage
| of short term licenses, i.e. renting software for a couple
| of months to get the work done after balking at four to
| five-digit sums to own perpetual licenses. Still, would be
| nice to own the software outright.
|
| Appreciate the links! Indeed, we're seeing OSS tooling
| getting better and better!
| ecmascript wrote:
| > I used to pirate everything, but is it a solution?
|
| Well it could be a solution if you are just starting out.
| CAD is very complex stuff so it's not likely that there
| will be a good open source replacement to Revit for example
| any time soon.
|
| I really don't want to pirate software in general but if
| the license is like $2500 / yearly it's such a ridicolous
| amount that there is no good options left.
| womitt wrote:
| Did you take a look at Shapr3D?
| nudgeee wrote:
| Wow thanks for the heads up on Shapr3D, definitely going to
| check it out :)
| andrei_says_ wrote:
| Rails, Postgres, stimulusjs, html/slim, scss/BEM/itcss
| principles, Heroku.
|
| The best bang for the time + effort that I've seen so far.
| welanes wrote:
| I'm building https://simplescraper.io - data extraction in the
| spirit of the late Kimono Labs.
|
| Front: Vue.js, Tailwind
|
| Back: Node.js, Firebase (Database, Hosting, Functions, Scheduler)
|
| Management: Airtable, Github, a 30,000 word README file
| ykevinator3 wrote:
| I loved kimono I hope you are successful and I will check out
| your product.
| ochrist wrote:
| I have created an app for simulating decisions in a project using
| the project triangle: https://estinator.com/
|
| The app has been created using Delphi.
| soheilpro wrote:
| https://volt.fm
|
| - TypeScript / Node / Express
|
| - PostgreSQL / RabbitMQ
|
| - HTML / Tailwind CSS / Vanilla JS
|
| - Hosted on two DigitalOcean droplets
|
| - Deployed as Docker
|
| - AWS SES for sending emails
| midrus wrote:
| Nowadays I'm using Django + Unpoly + tailwind. I just discovered
| a few days ago slippers which is just what I was missing. Also
| using Huey for background jobs, whitenoise for assets, esbuild
| for building js. And finally dokku to deploy (and just doing
| daily VM images for backup)
|
| https://mitchel.me/slippers/
|
| https://unpoly.com
| davidwparker wrote:
| I've got a few sites (trying to make money), all using the more
| or less same stack:
|
| * Frontend: Svelte using SvelteKit (and one Sapper), TailwindCSS
| / TailwindUI, hosted on Vercel
|
| * Backend: Rails API, hosted on Heroku
|
| * Database: PostgreSQL
|
| * Queues: Sidekiq
|
| * Caching: Redis
|
| * Mobile: Flutter
|
| * AWS S3 for things like images.
|
| Sites:
|
| * https://www.listenaddict.com/
|
| * https://www.programmingtil.com/
|
| * https://www.camerapricetracker.com/
|
| * https://www.useproducer.com/
|
| And business site / blog:
|
| * https://www.codenameparker.com/
|
| * https://www.davidwparker.com/
|
| Edit: formatting
| louissm_it wrote:
| Ruby on Rails, with a couple React bits in there for "islands of
| interactivity". Coupled with old-skool Heroku it lets me punch
| above my weight class, iterate like you would not believe, and
| focus on the business.
|
| I only recently moved to Rails though. Before that I was full
| stack TypeScript, which was cool and I still miss the static
| types, but it's worth going without them.
| tomduncalf wrote:
| Yeah I was evaluating back-end tech stack for a recent side
| project, most of my work these days is in TypeScript or C++, so
| a large part of me wanted to have types and go with a
| TypeScript/Node stack... but on further evaluation, both Django
| and Rails let you do so much on the back end with so little
| code, just by following their conventions and using off-the-
| shelf libraries, that I'm willing to trade off types in
| exchange for much less code to maintain (and easy Google-
| ability of problems).
|
| Node is great, but I didn't come across any frameworks that
| rival Django or Rails in terms of maturity, and for a side
| project with no special requirements in terms of scalability
| etc., I'm not really interested in piecing together multiple
| libraries or writing a lot of code myself.
|
| I actually ended up building the back-end twice lol - I was
| looking for the opportunity to try out GraphQL (overkill
| really, and it goes against what I said about keeping things
| simple, but I felt it was a good opportunity to try it) and
| ended up hitting some big performance issues with Django +
| Graphene - not sure how much of it was my fault vs. Python's
| GraphQL being slow, but in the end I rewrote the API in Rails +
| ruby-graphql in half a day and the performance is 5-10x faster
| there.
|
| Having had the opportunity to build the same thing in them
| both, I'd say that Django's ORM is quite a lot better (I prefer
| the Django way of "update the model and the ORM will work out
| what migrations you need" vs Rails where you explicitly create
| migrations) and I prefer the Python language (simpler syntax,
| Ruby has so many ways to express the same thing); but Rails is
| probably actually quicker to work with and the quality of the
| Gems available for common stuff seems better than the Django
| equivalents.
|
| Ultimately both Rails and Django let you get a lot done with
| not much code and are pretty similar conceptually - I'm
| impressed with both!
| louissm_it wrote:
| I completely agree about the Django ORM. I used Prisma for a
| couple projects and that sold the idea of "changing the model
| and generating the migrations" for me. Now, it feels a bit
| silly to explicitly define migrations. I'd love to hear some
| pros of the Rails/Phoenix way though.
| tomduncalf wrote:
| Same, I am sure they went with that way for a reason (or
| perhaps it's just technically easier to implement?). I also
| found things like many-to-many relationships were trivial
| in Django, much more manual in Rails.
| hardwaresofton wrote:
| Single person company with a few products out now:
|
| https://surplusci.com - Rentable dedicated CPU runners for GitHub
| Actions/GitLab CI https://ragtime.cloud - Hosted storage for
| Joplin the note taking application
|
| > What is your tech stack?
|
| - Front: Vue + NuxtJS
|
| - API: NestJS + Typescript
|
| - DB: Postgres
|
| - Infra: Kubernetes + Ansible + Pulumi
|
| - Hosting: Hetzner
|
| > Why did you choose it?
|
| - Front: Vue is less complex than React, NuxtJS enables SSR and
| pre-rendering which is ideal for SEO (not that I'm chasing SEO
| too agressively just yet)
|
| - API: NestJS is the best implementation of light yet structured
| MVC I've seen for (spend enough time with wild Express/Fastify
| codebases and you'll want some structure), has a lot of concerns
| taken care of _just about the same way I 've (re)written them on
| various projects myself_. Typescript because life is too short to
| not have a compiler do some of the work for you.
|
| - Infra: I've paid the initial cost of learning Kubernetes so
| it's actually a really easy way to deploy containers and manage
| my infra (TLS certs, open ports, machines, virtual machines, etc)
| for me. Ansible is great for initial setup, Pulumi is great for
| managing big IaaS provider pieces (AWS Route53, SES, etc)
|
| At this point I've actually built a set of reusable projects to
| launch SaaSes, and at this point what it takes for me to launch a
| new SaaS is copying ~3 repos, find/replacing and running make a
| few times.
|
| I want to make that SaaS-launching setup a SaaS itself -- as a
| completed/perfect implementation would cut this down to _only_
| value changes in a single file, which I could easily make a web
| form and then people could launch their own things. That 's far
| in the future though.
|
| > Do you think your choices had any impact on your success?
|
| It delayed launching quite a bit, but I'm convinced that my
| problems might lie in the markets I'm aiming for and products I'm
| making more than the technical choices.
|
| The technical choices are on the fanciful side -- I could have
| gotten by just fine with Rails + Caprover/Dokku, but at this
| point that cost is paid so it's much more about finding traction.
|
| My iteration speed is much faster now as I've developed a
| reusable set of repos, so it should be much easier to take more
| shots.
| atari800 wrote:
| I have a couple of SaaS products: Belt drive design tools for
| companies in the mechanical power transmission industry, and
| dealership management software for manufactured housing ("mobile
| home") retailers.
|
| Back end:
|
| - Windows Server 2012 - MS SQL Server - ASP.NET - Web API 2 - C#
| - Dapper "micro ORM" (I dislike heavy ORMS and would rather write
| my own SQL)
|
| Front end: - Bootstrap - jQuery - DataTables
| (https://datatables.net/)
|
| I use these "boring" things because I'm familiar with them from
| contract programming work for companies where Microsoft stuff is
| common.
| pcdoodle wrote:
| Xojo.
|
| It's clunky, it's like a tractor, not very good at any one thing
| but I use it everywhere.
| albumdropped wrote:
| Back end: Go
|
| Front end: Go
|
| Database: Postgres
|
| Proxy+SSL: Caddy
|
| Extremely fast, dead-simple to troubleshoot issues, and no
| javascript required.
|
| Most users are mobile, so speed and reliability are the
| priorities. This setup works well and it's simple to notice when
| there are any issues or any non-2xx responses to any server or
| database calls.
| traceroute66 wrote:
| The problem with this question is it is akin to those people on
| photography forums and elsewhere asking "what camera / lens / ISO
| /shutter speed / aperture" did you use ? As if somehow having the
| same combination will give them the same results.
|
| Surely the correct and only answer is "the right tech stack for
| the job".
|
| Trying to shoehorn everything into one chosen stack is only
| likely to end in dismal failure.
|
| Switching stacks just because flavour of the month cool stack is
| code written in Foo with Bar library with a Foobar cloud backend
| is also only likely to end in dismal failure.
|
| If a graph database is suitable for a project ... then use it. If
| cloud is suitable for a project... then use it. etc. etc.
|
| Don't be a "Jack of all trades, master of none", jumping around
| programming languages and libraries just because its the cool
| thing to do.
|
| The trouble is I see too many people over-egg the pudding on tech
| stacks. Perhaps especially when it comes to cloud services where
| they architect everything as if they were getting billions of
| hits per second and feel the need to justify using all cool cloud
| services buzz words like horizontal scaled event-driven,
| serverless computing platform.
|
| Sometimes its better just to follow the KISS principle (Keep It
| Simple Stupid).
| Zababa wrote:
| > Surely the correct and only answer is "the right tech stack
| for the job".
|
| That is assuming that there is a "right" stack in the first
| place. That thread is mostly proving the opposite, that the
| stack doesn't really matter.
|
| "use the right tool for the right job", "don't focus on the
| flavor of the month", "focus on getting users before
| scalability" and "KISS" all have been said a thousand times.
| Saying that again leads to no new insight.
| ebiester wrote:
| One of the components of "right tech stack" is "how many people
| does it take to support it?" For example, K8s might be the
| right tool for many things, but unless you have explicit K8s
| experience it probably is wrong for a solopreneur today.
|
| Thus, seeing what others are using with those constraints can
| be constructive.
| siculars wrote:
| My takeaway from the ask is what can you get done as a
| "solopreneur" and which tools do you use to do it. It looks
| like there are many answers and no single "right" answer. I'm
| particularly interested to know why people pick the tools that
| they pick.
| qecez wrote:
| https://zlipa.com - Unique, high-impact dotcoms for startups
|
| - Digital Ocean VPS running Ubuntu
|
| - Let's Encrypt certificate
|
| - Simple Analytics
|
| - Nginx + PHP
|
| - SleekDB NoSQL
|
| - AWS SES email
|
| - Cloudflare CDN
| [deleted]
| masa331 wrote:
| Rails, PostgreSQL, Vanilla JS, Bootstrap, AWS
|
| Fast to iterate, vast ecosystem, beautiful readable lang(Ruby)
| ai_ia wrote:
| I built https://primerlabs.io. A conversational learning medium
| designed for people who wish to learn Computer Science on their
| own.
|
| The tech stack is Meteor.js for backend and React + Apollo
| Graphql for front end. I use AWS lambda for Anki Card Generation
| generation and Latex-based PDF Generation for personalised Books.
| The main website uses self-hosted Ghost blog. Using Ghost for the
| main website + blog, saves a lot of time with SEO and Image
| compression. While compiling Latex on AWS Lambda Container is
| pretty slick.
|
| Deployment: Docker, AWS Beanstalk
|
| > Why did you choose it?
|
| It's been an absolute joy working with Meteor. You can prototype
| quickly. For instance, last week, I was trying to add anonymous
| accounts i.e. no need to sign up to view the application and can
| merge directly once the user is ready to sign up. It took me a
| half a day of work to do that in Meteor.
|
| There is a feature of real-collaborative learning I want to add
| in the application i.e. you can learn with friends and see their
| responses, notes in real time. Meteor has real-time capabilities
| using pub-sub which makes it quite easy to do so.
|
| > Do you think your choices had any impact on your success?
|
| The product is not mainstream yet. A small number of people who
| use it, love it. It requires a bunch of more courses to make the
| value proposition clearer to the users. But Meteor.js enabled me
| to prototype quickly since this is the third iteration of the
| product which I finally thought was closer to what I had in mind.
|
| I am not in anyway associated with Meteor. I really love Meteor,
| that's all.
| frenkel wrote:
| Never forget an autorenewing subscription again:
| https://everlint.com
|
| Hosted on a simple Debian Linux VPS with https://tilaa.com.
| Running nginx with Let's Encrypt certs.
|
| Built in Ruby on Rails with PostgreSQL for the database and
| Stimulus as JavaScript framework. Charts are generated with
| ChartJS and CSS is using Bulma framework.
| protoduction wrote:
| I'm the technical founder of FriendlyCaptcha [1], a privacy
| friendly proof of work alternative to reCaptcha that doesn't suck
| for end users (and also doesn't need any tracking or cookies so
| legal/compliance teams like it too). While not a one-man company
| anymore, I've been the only engineer of it for a long time that I
| think it qualifies :)
|
| * We use cloudflare workers for our API endpoints which have
| given us amazing reliability and scalability (which is of course
| very important for our service)
|
| * We use cloudflare KV and cloudflare cache for some caching and
| logged in user sessions.
|
| * Mailgun, FaunaDB, Sentry, LogDNA, Stripe, BigQuery.
|
| * The web app is good old server side rendered html and css with
| a tiny bit of JS here and there.
|
| * The widget is open source, written in Typescript (and as it has
| to run in really old browsers there's Babel to transpile. The
| solver inside of it and the proof of work library is
| AssemblyScript (i.e. WASM), with a JS fallback.
|
| * PHP for our wordpress plugin.
|
| The way we operate is that we provide free (or very low cost)
| plans for hobby users and stuff like small (wordpress) blogs to
| hopefully make a dent into recaptcha's market share, it's a bit
| of a social mission. Larger companies pay for more advanced
| protection features, EU-only endpoints, (as well as custom
| agreements and other paperwork). That balance has worked well for
| us, and even the small customers that use the free service
| contribute to our protection.
|
| The past half year or so we learned that our customers that bring
| in the lion share of the revenue really prefer it if we keep
| their processing and data in Europe (our privacy friendliness and
| our EU-basedbess are big selling points, even more than improved
| ux+accessibility). So much so that we are heavily investing into
| that, and we are slowly moving in favor of our own infra in
| Hetzner (Germany).
|
| There our tech stack is fully Golang (Fiber framework), with
| Redis, Postgres and Clickhouse as data stores. The way that our
| system works is that we look at patterns of access, and we can
| tweak the difficulty of the proof of work challenge on a request
| by request basis. One nice property is that it's not all or
| nothing: if we suspect a puzzle request is from a spammer they
| will get a rather difficult puzzle which will take a while to
| solve, but at least it won't lock out any false positives.
| Clickhouse is fantastic for this purpose (putting in millions of
| events is not even close to its capacity, it's lightning fast).
| Of course the widget itself also has the most basic of anti
| headless browser checks, but that will only deter the most naive
| spammers.
|
| Of course no captcha system is perfect and will protect against a
| spammer who is willing to spend real resources (e.g. pay compute,
| or human labelers) to spam, but so far we're happy with its
| effectiveness, and it warms our hearts when we receive messages
| from blind or even deaf-blind users that encountered our captcha
| and web out of their way to say thank you :). I hope that at some
| point captcha labeling tasks can be a thing of the past.
|
| [1]: https://friendlycaptcha.com
| betahuhn wrote:
| https://webcrate.app - OSS bookmarking tool to help you organize
| your web
|
| - Vue / Nuxt / Plain CSS
|
| - TypeScript / Node / Express
|
| - Hosted in your own personal cloud thanks to Deta Space
| (https://deta.space/discovery/webcrate)
|
| Nuxt made the frontend super simple and fast to build, it takes
| care of a lot of things for you! Deta is also awesome for devs
| pvsukale3 wrote:
| Profilehunt( https://profilehunt.net ) is a Kanban board built
| for organizing your job search. It comes with a browser extension
| so you can add jobs from any website to your board. Profilehunt
| sends weekly reminders and updates on applications.
|
| It has been built using following technologies: - Ruby on Rails -
| Web framework
|
| - StimulusJS - Javascript
|
| - TailwindCSS - CSS
|
| - Redis - Memory store
|
| - Postgres - Database
|
| - Nginx - Reverse proxy
|
| - AWS Cloudfront - CDN
|
| - AWS lightsail - VPS
|
| - Github - Code hosting
|
| - Capistrano - Automated deployments
|
| - Sidekiq - Background Jobs
|
| - AWS SES - Email SMTP server
|
| Edits : Formatting
| spiderfarmer wrote:
| -Ubuntu
|
| -NGINX
|
| -PHP
|
| -MariaDB
|
| All running on 3 VPS's. Everything I want to do can still be done
| with this stack.
| sftplm wrote:
| Good insight
| bwship wrote:
| Commandeer - Desktop App for AWS and LocalStack
| https://getcommandeer.com ----
|
| - AppSync, ApiGateway, DynamoDB, Lambda, Athena, S3 for the
| backend - Vue.js, AWS JS SDK, TypeScript, Electron for the
| desktop app - Vue.js, Firebase Hosting for the Web Portal -
| Nuxt.js for the marketing site - Forestry.io for the docs -
| Mailchimp for emails - Stripe for payments - SendGrid for
| transactional emails - Auth0 for authentication
|
| (Note: the about page shows a few more people, but 1 is my wife,
| one is my cousin, and the other two don't work on the project
| anymore, so really me myself and I)
| efortis wrote:
| For UI Drafter https://uidrafter.com I keep deps at a minimum for
| the sake of having fewer moving pieces. I chose a stack that I
| was already familiar with.
|
| The impact on success is marginal, but I'd say that it's cost
| effective due to being more stable (in the easy to upgrade
| sense).
|
| Cloudflare DNS => 2 Baremetal FreeBSD => 3 jails [Nginx, Node,
| PG]
|
| https://blog.uidrafter.com/freebsd-jails-network-setup
|
| SSL Let's Encrypt
|
| https://blog.uidrafter.com/isolated-tls-certificate-creation
|
| Fastmail, Stripe
|
| The PWA only uses React
|
| https://blog.uidrafter.com/architecture-of-a-desktop-alike-s...
| thdxr wrote:
| Full stack serverless. It's always important to reduce ops but
| even more so as a team of 1.
|
| I use serverless-stack with every AWS service I can possibly use
| to reduce my code liability.
| jarek-foksa wrote:
| https://boxy-svg.com - vector graphics editor similar to Inkscape
| and Adobe Illustrator.
|
| Both client- and server-side code is written with vanilla
| JavaScript. Since I'm targeting only Electron and modern
| Chromium-based browsers I can use latest web technologies without
| any transpilers or preprocessors. I'm using mostly raw DOM APIs
| without any abstraction layers.
|
| Third-party services:
|
| - Firebase (database, storage, hosting, cloud functions)
|
| - Paddle (payments, taxes)
|
| - Algolia (instant search)
|
| - ProtonMail (regular emails)
|
| - SendGrid (transactional emails)
|
| I have been using Firebase, Paddle and Algolia for several years
| now. So far I had zero problems with them and the overall
| experience was great (intuitive dashboards, good documentation,
| clean APIs).
|
| I only wish there was a service that would allow me to easily
| build Electron packages for multiple operating systems and
| architectures - currently it is a mess that requires multiple
| virtual machines with a ton of dependencies.
| n1c wrote:
| I don't know a whole lot about Electron and friends, but saw
| this project the other day that does new builds with a Github
| action: https://github.com/davidaf3/csgo-
| tracker/blob/master/.github... maybe it'd be useful to look at?
| jarek-foksa wrote:
| Thanks, I will check it out. I didn't know GitHub Actions
| could be configured to run on proprietary operating systems.
| capnorange wrote:
| I mostly optimize for dev time over performance.
|
| Next.js, Vercel + API functions, DigitalOcean postgres with
| Prisma.
|
| The biggest dev bottleneck for me was styling & css(mostly
| because I put away learning it!), tailwind ui components have
| been a big saver.
| Fornax96 wrote:
| I run a file sharing / content delivery platform called
| pixeldrain: https://pixeldrain.com
|
| The system serves 4 PB of data to 60 million visitors per month.
| I have served 30 PB and 700 million file views since I started
| tracking usage somewhere in 2018.
|
| I'll go from front to back:
|
| - Most of the frontend is plain HTML, CSS and JS. I have started
| transitioning some pages to Svelte. I like this framework for its
| speed and simplicity
|
| - Cloudflare Analytics to get basic info like which pages are
| popular and where my users are from
|
| - The structure of the website (page wrap, menu, footer, etc) is
| managed with Go's template system
|
| - Constellix for Geo-DNS. This automatically sends users to the
| server closest to them by doing Geo-IP lookups on the nameservers
|
| - The user-facing servers are dedicated 10 Gbps Leaseweb servers,
| stuffed to the brim with SSDs in RAID6 for caching. Each of these
| servers cost EUR1200 per month. The storage servers are from
| Hetzner's SX line.
|
| - The OS is Ubuntu 20.04 server edition. I use Ubuntu over Debian
| because it ships with TCP BBR
|
| - The API is written in plain Go. The only HTTP libraries I use
| are httprouter for routing and Gorilla Websockets
|
| - The storage system is custom built to spread files over
| multiple servers. I call it pixelstore, it's not open source
| (yet)
|
| - The database is ScyllaDB. I landed on this one after going
| through multiple other systems with severe bottlenecks. I started
| with MySQL which was limited to a single location, so other
| locations had high latency. Then I tried CockroachDB, but it kept
| hanging under the load no matter how much hardware I threw at it.
| ScyllaDB is very fast and relatively reliable.
|
| - UptimeRobot for monitoring
|
| - Mailgun for account e-mail verifications
|
| Feel free to ask me more questions :-)
| devcriollo wrote:
| very popular service in latam (colombia,peru,mexico,venezuela)
| Fornax96 wrote:
| Definitely. Here's a screenshot from my Cloudflare analytics:
| https://pixeldrain.com/u/dt92pNgf
|
| Most of my users are Vietnamese. Unfortunately bandwidth is
| very expensive there, so I have to serve all that traffic
| from Europe.
| PeterCorless wrote:
| Yeah! Do you want to do a blog for us at ScyllaDB? Would love
| to interview you. :D
|
| Hit me up via email at peter@scylladb.com
| Fornax96 wrote:
| That sounds interesting. I'll send you a mail tomorrow
| BilalBudhani wrote:
| Thanks for sharing these insight & very impressive stats!
|
| Just few questions I have:
|
| - What is your total infra cost? A cost split between storage &
| servers would be an awesome insight
|
| - Since how long you have been running this service?
|
| - How did you keep up with the infra cost before breaking even?
| Fornax96 wrote:
| Thanks
|
| My content delivery servers cost me about EUR2000 per month.
| I experiment a lot with different providers to drive cost
| down here. My storage servers are EUR800 per month. For that
| money I get about 500 TB of usable capacity (all my servers
| run raidz2). And then I spend about EUR150 on database
| servers. My Constellix DNS bill is EUR50 per month, and
| Mailgun is EUR5.
|
| So about EUR3000 / month worth of infrastructure.
|
| I started working on pixeldrain in 2015 during lunch breaks
| at school. The original version was a Spring Boot app with
| MariaDB. I had a lot of performance problems here. My use
| case doesn't really fit in the CRUD API use case. I need
| tighter control over my connections and threads. That's why I
| switched to Go.
|
| I run ads to pay for the servers. It's really hard to find
| advertisers for file sharing services because they don't want
| to run ads in controversial content, and that's what file
| sharing sites are mostly used for. I have to resort to
| working with some really shady companies. Because of this I
| balance my ads so that they generate just enough revenue to
| pay for the servers.
|
| Eventually I would like to turn some profit though. That's
| why I'm trying to shift from file sharing to content
| delivery.
| wooque wrote:
| How do you keep yourself motivated to work on a product if
| it does not turn profit for years?
| Fornax96 wrote:
| I'm hoping to find a way to make it profitable somehow.
| There must be something that I can sell to these millions
| of people who visit my site every day.
|
| And I simply like the technical challenges it provides. I
| like optimizing and scaling systems and designing
| database schemas. I'm learning tons of stuff this way. If
| an opportunity provides itself to apply this knowledge
| I'll have it ready.
|
| Pixeldrain as it's running right now could probably do 20
| PB / month. But I have systems in mind which could take
| it to 100 PB / month at little additional cost.
| viertaxa wrote:
| Hi! I had never heard of your service, so I googled it and
| accidentally misspelled "Pixel" as I often do as "Pixle". The
| first result was a reddit thread and the second seemed to be a
| full-length rip of Becoming Royal that had some really
| malicious ads which were clickjacking and covering the content.
| Just thought you might like to know. :)
| Fornax96 wrote:
| Thanks for letting me know. I suspect my advertising partner
| is doing some shady business on my site. I have been trying
| to catch them but I never seem to get the malicious ads
| myself, even when using a VPN from more eastern or southern
| nations.
|
| Could you maybe send me a screenshot / screen capture of the
| ads and send them to support@pixeldrain.com? I'd really
| appreciate that.
| viertaxa wrote:
| I sent you an email. Domain is the same as my un here.
| tyingq wrote:
| That page is the second organic result for "pixledrain" for
| me.
|
| The url is https://pixeldrain.com/u/823R39Sc
|
| And it is full of popups, redirects, etc. And maybe acting
| differently per-referer.
| Fornax96 wrote:
| Do you happen to be using an iphone? The malicious ads seem
| to be targeting iphones specifically. I can't reproduce it
| myself but I have told my advertiser about it.
|
| I have some leverage here since I'm one of their largest
| publishers.
| tyingq wrote:
| Nope, Android. I tried reloading a few times, and the
| page is normal most of time. So it must be only when a
| specific ad runs?
|
| Edit: Played around with it a bit. I think (not sure),
| some of the stuff is coming from this in the page source,
| near the bottom. <script
| type="text/javascript"
| src="//optyruntchan.com/400/4189877" data-cfasync="false"
| async="async"></script> </script>
| themulticaster wrote:
| You mention that you have user-facing servers as well as
| storage servers. So do the user-facing servers act as reverse
| proxies for the storage servers, or do you simply serve a
| redirect?
|
| I'd expect that the file access patterns are power-law
| distributions, i.e. recently uploaded files are requested more
| often than older files. If that's the case, can you use this
| property for sharding by having hot and cold storage servers?
|
| How do you handle users uploading forbidden content? I see from
| another comment that you ban the usual types of illegal
| content. But in practice, do you manually review every mail you
| get on your abuse contact and take appropriate action? What's
| the most common type of complaint?
|
| From a business perspective: How did you grow your site? I
| imagine the competition must be rough since file hosting is
| such a "simple" service.
| Fornax96 wrote:
| > So do the user-facing servers act as reverse proxies for
| the storage servers, or do you simply serve a redirect?
|
| Yes, my user-facing servers are proxying the files to the
| users.
|
| > I'd expect that the file access patterns are power-law
| distributions
|
| Exactly. On each server I have a sorted slice in-memory which
| keeps track of how often files are being requested. The most
| popular files are cached and files which drop out of the
| cache are moved to HDD storage servers in Helsinki. This way
| I can serve 10 Gbps of data to the users while only putting a
| 1 Gbps load on the storage nodes.
|
| > How do you handle users uploading forbidden content?
|
| I get a lot of abuse mails, mainly copyright violations. I
| have a mailserver which is hooked into pixeldrain which scans
| mails from common copyright offices and automatically blocks
| the files. For other types of abuse I have a report button on
| the download page. Users report content which breaks the
| rules and once the number of reports hits a certain threshold
| the file is blocked.
|
| > From a business perspective: How did you grow your site?
|
| Most file sharing sites are really terrible. Like almost
| unusable. It's pretty easy to beat the competition in UX. I
| just started using pixeldrain myself on reddit and other
| forums. In the beginning people complained in the comments
| about the ergonomics of the site and I listened carefully.
| Eventually when the kinks were worked out other people
| started using it too.
| themulticaster wrote:
| Thanks for satisfying my curiosity! Also, congrats on your
| success!
|
| > Yes, my user-facing servers are proxying the files to the
| users.
|
| I've never operated a service as large as yours, so take my
| question with a grain of salt: I'm wondering whether it
| would make sense to split off the actual file front-end
| servers from the user-facing servers (going for a redirect
| approach instead of proxying), since the requirements for
| serving the UI (low latency, low bandwidth) are so
| different from the file serving requirements (high
| bandwidth, but latency is not an issue). In theory, the
| traffic load from the files could negatively impact the UI
| latency leading to perceived sluggishness of the website.
| But perhaps that's not an issue in practice?
|
| Since you mentioned elsewhere that you wanted to move to
| content delivery: What kind of content delivery do you have
| in mind? At the moment I can only think of either classic
| CDNs (but that's a few order of magnitudes larger) or ads
| (but that's an entirely different area).
| Fornax96 wrote:
| Proxying the files has a number of benefits.
|
| - The first is that I can have all my API endpoints under
| one domain. This simplifies downloading as you don't need
| to make a separate request to figure out where the file
| is stored.
|
| - The storage servers that Hetzner sells only have 1 Gbps
| bandwidth. That runs out very quickly when a file goes
| viral. The 10 Gbps caching servers do a lot of heavy
| lifting here, this makes sure the disks in the storage
| nodes last longer.
|
| - I can also decide to switch to a different storage
| system on my storage nodes when I want. I have been
| considering to deploy reed-solomon encoding for a while.
| That would make it impossible to link directly to a
| single storage server as a single file would also be
| distributed.
|
| - Sending out this much data uses a lot of RAM for TCP
| send buffers. Installing this RAM on a single content
| delivery node is cheaper than installing it on every
| storage server.
|
| To prevent the bandwidth load from affecting the UI speed
| I have a rate limiter on the download API which slows
| down when the uplink reaches 95% capacity. This way there
| is always some bandwidth left for the HTML and database
| communications.
|
| With regards to content delivery: I want to use
| pixeldrain to serve static files. Nothing like the fancy
| site-wrapping tech that cloudflare uses. The idea is that
| users can have a file tree on pixeldrain somewhat like
| dropbox. They can copy the direct download link to that
| file and use it to embed videos, audio and pictures in
| their own websites. Because this is a lot simpler than
| other CDN services I can offer it at a very competitive
| price.
| adamhp wrote:
| I'm building a web-app called Tripmix, that lets you build travel
| guides for your friends (like FB Recommendations meets Canva).
|
| I use Postgres, FastAPI, and TypeScript React. I wouldn't
| recommend TypeScript for solo developers who need to iterate and
| prototype quickly. That's been my biggest regret thus far. I
| think the end result will be much cleaner but I've sacrificed a
| lot of time getting it there, when I could have been shipping.
| It's all been a good learning experience though, and that's how
| I'm treating it.
|
| Picked all of them out of familiarity.
| ardit33 wrote:
| IOS, native Firebase + Java and Google Cloud, for the backend
| Database, Firebase Realtime DB, as a NOSQL solution (works better
| than Firestore for me) and actually build a simple RCP service on
| top of it.
|
| My next backend might be on Go and just use a simple Rest
| service, and minimize Firebase usage (it is still good for real
| time chat type of apps).
| motyar wrote:
| https://bruzu.com runs on a small Digital Ocean VPS.
|
| API is powered by Node js.
|
| Other pages are php.
| Rd6n6 wrote:
| For my game, I started with unity + a bunch of plugins, but
| switched to unreal a few months later for a variety of reasons.
| C++ and a lot of custom systems - third party game plugins seem
| to have a lot more issues than in full stack dev. It's not really
| about tech stack so much as good system design choices that lets
| you work really fast. I put a little site up for my prototype at
| https://barbariangrunge.com
|
| I also have a app for tabletop rpg prep but it isn't live yet:
| node, mongo (for a certain type of user editable schema), nginx,
| react, redux, the usual. I replaced chef with some bash scripts
| in my projects a while ago and it's been great
| cyanic wrote:
| I built a platform for sharing git repositories:
| https://gitfront.io
|
| What is your tech stack? Backend: Golang
| Frontend: HTML, Plain JavaScript and CSS Database:
| PostgreSQL and object storage
|
| I run everything on a single dedicated server on a VM. Services
| are deployed as containers and managed using HashiCorp Nomad.
|
| On the backend there is a custom task queue which delegates work
| to worker instances. Repositories are rendered as static HTML and
| stored on object storage. As each repository is stored as a
| single object there is also a custom proxy that allows serving
| individual files from objects. All of this is written in Go.
|
| The frontend currently consists of a landing page without any
| JavaScript and a web app which builds most elements using
| JavaScript. Everything is styled by hand using CSS.
|
| Why did you choose it?
|
| I chose to use technologies that would allow me to maintain
| everything years from now without having to rewrite a lot of
| code. I wanted to have something that would run fast, work
| reliably, have a small number of dependencies and that would
| allow me to develop at a reasonable pace.
|
| As for the infrastructure, I wanted increased availability, more
| security and control and lower costs.
|
| Do you think your choices had any impact on your success?
|
| Yes, but for me success is being able to learn, delight customers
| and to satisfy my own standards on how things should be done.
| bwghughes-fth wrote:
| Jeppers, there's some heavy stacks in this post - I'm not sure
| where folks find the time !!
|
| HTMX for JS. Go (GORM, Gofiber) + Sqlite (w. Litestream for
| replication). Linode for hosting. Ansible for config/deploy.
| benjaminwootton wrote:
| I have always used Rails for my projects. In the most recent I
| took a detour to Django, which was successful, but never felt
| quite as productive.
|
| If I start something new this year I think I would opt for Rails
| again. Even though it's long in the tooth nowadays, I would
| choose it for productivity, time to market and availability of
| people if the project scales.
| tomduncalf wrote:
| As I mentioned in another comment
| (https://news.ycombinator.com/item?id=28299878), I recently
| built a fairly simple GraphQL backend in Django, then switched
| to Rails as I hit performance issues with Python's GraphQL
| support.
|
| I had no real experience with either before, but I think I'd
| agree with your summary. I felt Django was a bit "cleaner" and
| the code felt less magical, but I definitely spent quite a few
| hours trying to get things working which "just work" on Rails.
| The Rails library ecosystem seems a bit better too (both in
| terms of quality and quantity). Both enabled me to get a lot
| done with very little code, which when it comes to back-end I'm
| a fan of!
| raihansaputra wrote:
| Why did you choose Django for your last one? What's your
| setbacks/difficulty compared to Rails?
| polote wrote:
| Knowledge management for organization (Confluence/Notion
| competitor) https://dokkument.com
|
| Backend: Django + Django Rest Framework + Celery + Postgres
|
| Frontend: Vanilla Js + prosemirror
|
| Deployment: Manually on rented servers
|
| Picked that because this is probably the fastest way to code for
| me, no bullshit. I know that if I add any new tech that will slow
| me down, because I'll have to learn and master it and that takes
| a lot of time.
|
| I don't think that has any impact on my success at all. Customers
| don't care about the stack, the only thing that it impacts is
| development speed. And this is not a significant factor. The most
| important thing in Saas B2B is sales skills
| shanecleveland wrote:
| I have a pretty basic Flask boilerplate I have used, but have
| been very curious about Django. It would probably be a better
| option for me in some cases.
| joshmanders wrote:
| So I have two distinct companies
|
| Primcloud - Cloud hosting platform (https://primcloud.com)
|
| - Infra: Kubernetes on AWS
|
| - Backend: Moleculer.js Microservices, Prisma with PostgreSQL
|
| - Frontend: React/Next.js and Tailwind CSS/UI.
|
| NiftyCo - Collection of low-touch SaaS products I am building.
| (First product: https://prevalidate.com)
|
| - Infra: Deployed on Primcloud
|
| - Backend: Next.js API / Prisma via my package Next-SaaS
| (https://git.io/next-saas)
|
| - Frontend: React/Next.js and Tailwind CSS/UI.
| commondream wrote:
| My stack for https://www.withcardinal.com is based on my
| experience with working on startups and the things that come up
| down the road. We're technically a 2 person company because I
| have a more business oriented co-founder, but I'm the only
| programmer and ops person.
|
| > What is your tech stack?
|
| We use a managed K8S provider so we don't have to deal with
| server and cluster upgrades ourselves. That's a huge time sink,
| especially as server counts scale up. Our cluster has Nginx for
| ingress, Loki for logs, Prometheus for metrics, and Grafana to
| keep an eye on things.
|
| We're building the app in Node.js, primarily because in our app
| there are a handful of spots where we can share code between
| front-end and back-end. We use Next.js a lot, and use Bull for
| our queueing at present, and use the ws module for our
| websockets.
|
| We use PostgreSQL for database, without an ORM just because
| that's my preference, and we use Redis for queues and some
| caching. That'll likely change over time as we grow, but managed
| Redis is pretty much ubiquitous at this point so it's an easy
| place to jump in.
|
| > Why did you choose it?
|
| My stack is mostly based on past experience and the requirements
| of the app. Since I'm hoping to grow the company and am mainly
| b2b focused, having a popular infrastructure stack makes life a
| lot easier in security audits and contract redlines, and in
| finding ubiquitous tools. Like I mentioned above, I didn't want
| to deal with server upgrades, so I'm using a managed k8s
| provider. We're using node.js heavily because there were a few
| obvious paths where code could be shared between server and
| client.
|
| > Do you think your choices had any impact on your success?
|
| We will see. We're very early in our journey, but I'm hoping
| keeping things easy to change and ubiquitous will help us as we
| progress.
| kilroy123 wrote:
| For my art newsletter and site: https://randomdailyart.com
|
| It's dead simple.
|
| - A static HTML page using Go Hugo to build the pages.
|
| - Hosted on Netlify
|
| - zapier runs daily to rebuid the site and update everything
| automatically
|
| - Code on github and images stored on netlify
|
| - Bootstrap for CSS
|
| - I have a small server that runs the email software to send out
| the custom made email.
|
| - Actual end email sender is sendgrid.
|
| Between the site and emails, art is being viewed more than
| ~25,000 a month.
|
| Total cost? $22 a month (Though I'm going to have to start
| spending $35)
| tmlee wrote:
| Heroku works best for a company of one to offload most of the
| devops out
|
| Otherwise, https://dokku.com has been really stable to launch
| your own heroku on cloud services like Digital Ocean or AWS
|
| Gives the same experience as Heroku but with more flexibility
| midrus wrote:
| Dokku is GREAT. I've been using it for about 4 years now and
| it's rock solid. I love it.
| rakshazi wrote:
| I started https://etke.cc service not long ago.
|
| Tech stack: ansible (automatization), docker (simplify
| deployments and maintenance), matrix (protocol) and golang
| (internal tools)
|
| The idea of the service is to provide painless setup of matrix
| homeservers with huge customization options (not listed on
| website, otherwise it will be 3 desktop-screens-form in size),
| because if you went your matrix hs you must suffer :D and I'm
| trying to make it as simple as possible for newcomers to matrix
| world.
| kureikain wrote:
| https://hanami.run email forwarding services with webhook, smtp,
| disposable emails
|
| Tech Stack:
|
| - Ruby/ for webapp and user facing service: very quick to get the
| feature out, easiser to work with HTML, database access. Being a
| one man shop, I have to develop fast
|
| - Go: mail server and anything that isn't user facing or doesn't
| involve rending HTML. Statically type to reduce bug, performance
| to cut cost, this is the core of business.
|
| - React Native: for our (upcoming) mobile app so I can share code
| for both of android/ios
|
| I think the ability to ship out feature fast is important to keep
| user engage. And with the performance of Go I can keep cost low.
| https://hanami.run currently handles about 50K domains and
| processes 10 email per second and the entire infrastructure is ~
| $100 per month including redundancy.
| louis-lau wrote:
| Nice service!
|
| You may want to hire a native English speaker to check the text
| on your website though, it's full of errors and odd wording.
| darkstarsys wrote:
| My app is https://bioviz-studio.com, a web-based tool to create
| beautiful video visualizations of molecular structures. App
| itself is at https://app.bioviz-studio.com.
|
| Front end: Vue, vuetify, vuex, NGL, three.js/webgl, d3.js, 100%
| typescript, yarn, webpack Back end: node.js, express, Firebase,
| GCE, Blender, ffmpeg, docker, CUDA
|
| Why? Vue for pretty UI & ease of coding, NGL for beautiful
| molecular graphics, Firebase because it makes getting from 0 to 1
| easy, Blender because of Cycles renderer & scriptability.
|
| Have choices impacted success? Definitely! Faster iteration leads
| to better UX, good architecture leads to stronger foundation, and
| standard tech means I can on-board a contractor when needed.
| dakna wrote:
| This looks great, congrats!
|
| Since academic researchers are your customers, would you mind
| sharing a few tips on how to get your product in front of
| academic staff?
|
| I'd assume the university department has to approve this
| expense, or do researchers pay out of their own pocket to avoid
| budget justification?
| ykevinator3 wrote:
| This is amazing
| darkstarsys wrote:
| Thanks!
| Aulig wrote:
| I turn existing websites into apps at https://webtoapp.design
|
| I went with Flask (python) + Bootstrap for my website.
|
| The apps are created in Flutter, which was a great choice looking
| back on it. This allows me to have 1 codebase for both Android &
| iOS apps (most customers want both). If developing an app for
| just Android would be 100% effort, developing an app for Android
| and iOS with Flutter is around 130% effort I'd say. Those
| additional 30% mostly come from inconsistencies in Flutter
| between Android & iOS and from desired differences between the
| platforms, e.g. Material vs Cupertino design.
|
| I developed native Android apps before and now I'd even use
| Flutter if I wanted to just create an ordinary Android app. It's
| just so much nicer to use in my opinion.
|
| Summary: Flutter was a great choice, Flask is fine too, nothing
| to complain about there.
| zhte415 wrote:
| .lifting-card {height: 100%}
|
| If you like the column heights aligned on /convert/appdetails.
| Aulig wrote:
| Thanks for the tip! I might use that, need to think about a
| good way to deal with the additional white space in the card
| :)
| ativzzz wrote:
| Any particular reason for choosing Flutter over React Native?
|
| Also seems like a very low price tag, I guess you're working
| with cheaper developers, have some automation in place and/or
| take on simple websites? Or maybe I overestimate the difficulty
| of doing this?
|
| $850 for both android + ios is about a day's worth of work as a
| medium paid contractor in the U.S, and I imagine it takes
| longer than that to do this.
| Aulig wrote:
| I hadn't worked with React or javascript before this project,
| but did a small Flutter project in university. I found dart
| easy to pick up because it's quite similar to Java, which
| I've used quite a bit. Also I find that there's more progress
| being made with Flutter (with Google as a backer), than with
| React native. But I might be in a bubble there.
|
| Creating the apps is mostly automated and the apps use
| webviews along with a few native components. Without webviews
| and automation this would never be possible at that price
| point, you're totally right.
|
| There's lots of competitors that offer pure webview apps at
| ridiculous prices (I've seen $5 even). You can't publish
| those in the app store though (even if you manage to submit
| it for review without any help). So native components and
| help with publishing the apps are quite essential. And that's
| where a lot of the involved effort lies: communicating and
| helping customers.
|
| Working on improving that day by day though :)
| malikNF wrote:
| Wow sounds fun, the idea for the website sounds fun as well and
| congrats on the launch.
|
| Small suggestion, could you not automatically display the
| pricing according to the location of the IP address of the
| user. My IP is being guessed as its from Indonesia and I see
| pricing that I am unable to read. And I don't see an easy way
| to look at the pricing in a more familiar currency.
|
| Far too many websites do this, its so annoying :(
| Aulig wrote:
| Thanks for the feedback! That makes sense, thanks for letting
| me know. I fetch the prices via an API from my payment
| processor, which does the guessing.
|
| I'll add it to my todo list to offer a manual override :)
| cnity wrote:
| How long did you spend on the Droste effect on your homepage?
| :D
| Aulig wrote:
| Haha i spent like 3 days on that image in total. The starting
| point of the image is from undraw.co (i think it's called
| "web app"). First I wanted to use recursion but in the end it
| was a lot easier to just make a simple loop to nest the image
| 3 times or so (beyond that it just unnecessarily increases
| the DOM size without a big visual difference)
|
| Also make sure to hover the image, it's animated! I love how
| the nested images get animated too.
|
| All in all it was fun to work on and I learned a lot about
| SVG while I had nothing super important to do :)
| cnity wrote:
| It sparked joy, I like it!
| pawelwentpawel wrote:
| https://flat.social - a webapp for building playful virtual
| spaces for meetings and socials. (demo here:
| https://www.youtube.com/watch?v=JO9o1DobMzs)
|
| Front-end: Typescript, Next.js, Styled Components
|
| Back-end: Typescript, Node.js, Express, Socket.io, Express
| Audio/video: Mediasoup
|
| Deployment: Github workflows, Docker
|
| Analytics: GA, Mixpanel, Sentry
|
| Hosting: A couple CPU-optimised droplets from Digital Ocean,
| Firebase
|
| Next.js + Styled Components was a really good choice. When time
| is limited, reducing any silly roadblocks is really important.
|
| Mediasoup is pretty raw when it comes to setting up basics of
| video conferencing but allows for a much higher level of
| customisability and optimising final operational cost. It was a
| world of pain initially (not many solid examples of how to use
| it) but worth it at the end.
|
| > Do you think your choices had any impact on your success?
|
| Maybe not on success (reality will verify that in the coming
| months) but on avoiding any unnecessary failure on the way. I
| worked and interacted with startups in the past that would get
| excited and jump on using newest tech (the very first version of
| Swift or early version of React Native for example...) just to
| end up battling the unknowns after a couple weeks / months. I try
| to keep the product fun but keeping the tech stack boring and
| predictable.
| Mastice123 wrote:
| I tried it few times, I love it and inside the demo room you
| can find Pawel, a super interesting person.
| nickjj wrote:
| If anyone wants more of a deep dive on solo developer tech
| stacks, I have a podcast at
| https://runninginproduction.com/podcast/ with almost 100 episodes
| and 100 different guests. Every episode is a 60-90 minute
| unscripted podcast where we talk about how they built and
| deployed their app, what libraries they used, tech stack, lessons
| learned, etc.. There's also a skimmable list of tech stack tags,
| reference links and show notes.
|
| Episodes are a mix of solo developers and organizations but based
| on having personally recorded and edited every episode my gut
| says about 30% of the episodes are solo devs and it's usually
| pointed out in the first few minutes of the show.
|
| With that said, if you want to be on the show to chat about your
| tech stack let me know. There's a "become a guest" button in the
| nav bar to get the ball rolling.
| eabraham wrote:
| I run a Reddit Post Automation tool called Delay for Reddit:
| https://www.delayforreddit.com
|
| The tech stack is:
|
| - Ruby on Rails
|
| - Postgres
|
| - Redis
|
| - Hosted on Heroku
|
| I choose this stack because it was the technologies I was most
| familiar. Also, I knew it could solve the problems the business
| faced.
|
| I do not think Tech Stack is the most important component to my
| success. Its important to choose a Stack which can solve the
| business's problems first and second having familiarity with the
| technology can make you more agile.
|
| Spending time on SEO, marketing and advertising is where I can
| attribute most of my success.
| buro9 wrote:
| Getting very close in my large side projects for everything to
| just be Go + PostgreSQL. Go is the API, business logic, and very
| soon the entire web layer. This is all on Linode, there are no
| containers I just put a binary on an LTS Ubuntu and then iptables
| to just those ports (with SSH configured in their Cloud Firewall
| to only be possible from my home IP).
|
| I have a long term itch that I want to scratch soon, whether it's
| possible to dispose of PostgreSQL and just store my data in an S3
| compatible object store and yet still have a SQL interface to it.
| https://blevesearch.com/ is on my list of things to look into for
| this. I'd already structured the PostgreSQL schema with the
| possibility of putting individual tables into an object store,
| but as my databases grow I'm keen to avoid becoming a DBA and I
| don't use most PostgreSQL features so if I have the chance to
| reduce my tech stack to just Go I may take it.
|
| What I've learned from having a mix of Python + Django + some
| NPM... bitrot and maintaining dependencies is a debt that you
| have to start paying way too soon. Originally only the API was in
| Go, but that is the one part that over years has required
| virtually no debt paydown due to the language, environment,
| dependencies. You can leave a Go application for 8 years and all
| you need do is compile it to the latest Go and everything works
| perfectly... I can't even run or upgrade Python apps from half
| that time ago without major work to bring it up to date. As the
| side projects proliferated or grew, it is less overall effort for
| me to rewrite in Go than maintain everything else.
| jjice wrote:
| How do you handle DB interactions in Go? I've been interested
| in how people choose between ORMs and hand written wrappers and
| how they structure them recently.
| buro9 wrote:
| Manual via https://pkg.go.dev/database/sql with handwritten
| SQL in the majority of places... but with a wrapper to handle
| the more complex search scenarios.
|
| For example these from a multi-tenant SaaS forum platform
| (it's old, but it's also OSS so I can show you)...
|
| This helper to get connections: https://github.com/microcosm-
| cc/microcosm/blob/master/helper... used like this for
| inserts: https://github.com/microcosm-
| cc/microcosm/blob/master/models... and this for reads
| https://github.com/microcosm-
| cc/microcosm/blob/master/models... .
|
| But searches... i.e. highly consistent SELECT queries with
| different WHERE statements (and potentially FROM statements),
| then in each project I tend to have an idea of a search
| struct ( https://github.com/microcosm-
| cc/microcosm/blob/master/models... ) that will validate the
| inputs and represent the search query, and then something
| that will consume that and build the SQL for it (
| https://github.com/microcosm-
| cc/microcosm/blob/master/models... ). This isn't pretty...
| but it's easy for me to tune, debug, and keeps the rest of
| the code base very maintainable... all the complexity is here
| in the search.
|
| The vast majority of SQL is very very simple and needs no
| ORM, and the complexity is just in the search scenario where
| I want to be able to tune the performance more than an ORM
| would allow me to do so.
| ggregoire wrote:
| Is there a way to write and import the queries from a SQL
| file in Go? Like HugSQL (Clojure) or PugSQL (Python).
|
| To benefit from the SQL tooling (syntax highlighting,
| autocomplete and so on).
| daoman wrote:
| Yes, and it's super easy to do nowdays with embed since
| Go 1.16 https://blog.carlmjohnson.net/post/2021/how-to-
| use-go-embed/
| yawn wrote:
| https://github.com/kyleconroy/sqlc
| justsomeuser wrote:
| Opinion: Don't put your business data in s3 objects!
|
| It can work if all you will ever need is a key value store, but
| as soon as you need SQL-like queries (joins, filtering,
| transactions) you will be stuck reimplementing a sql engine in
| your app code.
|
| I recommend to try SQLite with some kind of replication (either
| Linode disk snapshots, Litestream etc).
|
| Having your state observable and local to your application
| instead of a slow http hop away makes development much easier.
| Terretta wrote:
| You might not have to make a SQL engine immediately.
|
| - S3 Select: https://docs.aws.amazon.com/AmazonS3/latest/API/
| API_SelectOb...
|
| - Athena: https://towardsdatascience.com/query-data-
| from-s3-files-usin...
| Hermitian909 wrote:
| > you will be stuck reimplementing a sql engine in your app
| code.
|
| Only if you're intent on keeping the s3-only architecture
| when it no longer makes sense, and the transition to SQL need
| need not be hard if you've been disciplined about your data
| structures from the get go.
|
| I've been part of a transition from s3 only to s3/sql when
| business requirements changed, it only took us a week to set
| up a db, set up a workflow manager to insert necessary data
| into the db when something uploaded to s3, and ran some batch
| jobs for data that already existed. Total data in s3 was
| ~1pb.
|
| IMO it's all about whether your problem space fits well with
| s3-only, and sometimes it does!
| [deleted]
| cweagans wrote:
| +1 for SQLite. You might take a look at
| https://github.com/rqlite/rqlite if you really need
| replication. SQLite can go pretty far on its own though.
| otoolep wrote:
| rqlite author here, happy to answer questions about it. I
| should note that rqlite is a distributed database that uses
| SQLite as its database engine. This means in practice it
| does replicate a SQLite database to each node on the rqlite
| cluster -- but it's not a SQLite replication system per-se.
|
| https://github.com/rqlite/rqlite/blob/master/DOC/FAQ.md
| agilob wrote:
| Backend and frontend were generated using jhipster, then jhipster
| specifics removed completely, parts replaced with openapi
| generator, liquibase with flyway
|
| Backend: Spring Boot + PostgreSQL
|
| Frontend: TypeScript + Angular (considering switching to
| DartAngular) for future components
|
| mobile: Dart + Flutter
|
| hosting: k3s and operations using gitlab
|
| Why did I choose it? These are tech stacks I know best.
|
| >Do you think your choices had any impact on your success?
|
| I regret using less mature backend frameworks at the beginning, I
| spent a lot of time fighting interfaces, DB transactions and
| mocks in quarkus and micronaut. They improved a lot since then,
| but I didn't look back.
| rishav_sharan wrote:
| Not really a company yet, just a WIP product.
|
| Vanillajs for the frontend,
|
| crystal for the backend,
|
| postgres for the db,
|
| fly.io for the app hosting,
|
| Cloudinary for the CDN,
|
| trello and Github issues for management.
|
| IMO, simple vanillajs blows any other js framework out of the
| water in simplicity. Crystal is an amazing and very performant
| language for the backend. If you love ruby, you would love
| Crystal.
| strzibny wrote:
| Love to see Crystal in the thread!
| BilalBudhani wrote:
| What Crystal framework are you using? Coming from Ruby I gave
| serious try to Crystal a few months back but couldn't move
| forward because of the current state of Crystal ecosystem. I do
| hope it improves.
| aparks517 wrote:
| Niche music streaming service http://lofi.limo/
|
| Front end: plain JavaScript
|
| Back end: Phoenix and Elixir, Postgres, OpenBSD
|
| Deployment: tmux on a bare-metal server at a local colocation
| facility
| sdmac99 wrote:
| As a solo dev working in the public sector I recently moved to
| using Nim.
|
| Backend: Jester (Nim) Front-end: Karax (Nim) Db: sqlite/mariadb
| Host: digital ocean
|
| I find that I can implement features much faster and with less
| code compared to my previous Go/Js stack.
| second--shift wrote:
| Golang backend, some light vanilla Javascript frontend. postgres
| db. running on podman (docker-compose), fedora server.
|
| I have some background in C programming, so Go was easy to pick
| up. the standard libs are great for building server-side webapps
| with a sql backend. templates lib and some glue javascript make
| front-end pages a breeze.
|
| I'm a linux guy thru-and-thru, so running fedora server on the
| latest kernel. latest podman from RedHat and docker-compose to
| orchestrate.
|
| I'm one guy so I don't do any HA or cloud or any other funny
| business. My one server is racked nearby and I've had good
| history with the colo.
| talaba wrote:
| Common Lisp
| ska80 wrote:
| Ditto
| icedata wrote:
| Hi Talaba, can you provide a little more detail about which
| Lisp libraries you use?
| talaba wrote:
| Hey. Just the usual suspects: alexandria, str, caveman2, cl-
| ppcre, etc.
| WA wrote:
| App with Web account management:
|
| Ionic, Stencil, Capacitor, TypeScript.
|
| A CouchDB per user for auto sync across multiple devices.
|
| Backend with Node, CouchDB, TypeScript, pm2 on a VPS.
|
| Sendinblue for transactional emails (EU).
|
| Why? Because Ionic lets me target iOS, Android and web with a
| single code base and almost no custom view code per platform. For
| non-technical users it is "good enough". Nobody ever complained
| about the non-nativeness.
|
| CouchDB enables auto-sync with 0 lines of syncing code. It's
| good, although there aren't super many tutorials on the web.
|
| CouchDB makes my app offline-first. I'd say this aspect alone is
| extremely great. A competitor has a similar app, but native.
| However, saving data requires an internet connection. This makes
| their native app feel slower than my non-native offline-first
| app.
|
| For account management, I wouldn't use it again, because I like
| SQL and that it makes it more easy to calculate some business
| statistics you might need only once.
| LAC-Tech wrote:
| Any chance I could talk to you about offline first in
| production? I'm in the agricultural space and I'm considering
| specialising more in that direction - wondering what couch (and
| I assume pouch) are like to live with.
|
| Email in profile.
| exelib wrote:
| > Nobody ever complained about the non-nativeness.
|
| Noticed the same thing. Only devs care about "nativeness".
| cfontes wrote:
| I am buiding a Purchasing system for construction comapanies ( I
| own one and it's test subject atm).
|
| The sofware focus on automating tasks other systems don't,
| document decisions and an extremelly tight link between the
| budget and the real and projected expenses.
|
| Construction is a very local dependent business so good systems
| from other countries didn't adapt really well here. Hence the
| effort to make our own. I am the solo dev.
|
| Stack is
|
| * Backend: Quarkus.io , Lombok and Java
|
| * Frontend: React, Ant Design and Typescript
|
| * Persistentency: Postgres
|
| * Automatic Backup: S3 and custom Postgres container
|
| * Platform: Civo and K3s for PROO
|
| * Security: Keycloak
|
| * CI/CD: Github actions and Cloudflare pages
|
| * Local Env: Docker for local.
|
| * Ide:IntelliJ
|
| Why did I Chose it: * Java and Quarkus: because I have 20 years
| of experience with Java, it's rock solid, performance is great
| and I am fast with it.
|
| * Civo and K3s: Because I love k8s but it's too expensive to run
| for my operation.
|
| * Postgres: It's just great.
|
| * React and Ant Design: I like React approach, I have used
| Angular and Backbone before and react is awy better. Ant Design
| is just awesome, great looking components and they work 99% of
| the time, documentation is also very good.
|
| * Keycloack: because makes me faster, implementing security by
| your self is always a bad idea unless you are a pro, which I am
| not. Keycloak let's me focus on the business.
|
| * Github actions: Simple, powerful, free!
|
| * Cloudflare pages: Simple, powerful, free!
|
| Do you think your choices had any impact on your success?
|
| Not there yet, let's talk in 3 years. But we are using the system
| at my company already and locally it's been a great sucess,
| improved our work by a mile, people are happy using it even with
| some bugs, we are already saving money and identifying places
| where we didn't have a good budget to improve next time. We also
| are not afraid of people leaving anymore, since with the system
| their replacements can pickup where they left and continue to
| work on Day 1 and buy stuff maintaining the time requirements,
| that was the best part.
| 23matt wrote:
| https://recordwise.ch - helping founders incorporate in
| Switzerland:
|
| - Django/Python
|
| - SQLite
|
| - Celery and Redis for task queues
|
| - Bootstrap4
|
| - jQuery
|
| - Sentry for error tracking
|
| - Stripe for payments
|
| - EmailOctopus for newsletter
|
| - SendGrid for transactional emails
|
| - NameCheap for the domain
|
| - Linode for hosting
|
| Running costs are USD 7/month for Linode + USD 15/year for the
| domain. SendGrid is currently free through the Twilio Startup
| Program.
|
| Why did I choose it?
|
| I am a lawyer and startet to learn how to code from scratch.
|
| Python was being recommended because it is easy to learn. So I
| chose that.
|
| Further, there are many Python/Django tutorials available online
| and I was always able to find my answers online. That definitely
| helped me to keep going and not give up.
| vishnumohandas wrote:
| Hey, is this service open for non-Swiss residents? If yes, is
| there an English version of the website available? Thank you.
| :)
| 23matt wrote:
| The service is aimed at founders domiciled in Switzerland; in
| principle, formation by foreign founders is also possible.
| However, it is mandatory that the company is represented by a
| person domiciled in Switzerland. This can be a managing
| director (GmbH) or a member of the board of directors (AG).
|
| For capacity reasons (company of one) and due to my focus
| towards Swiss founders, the site is currently only available
| in German.
| sirodoht wrote:
| Minimal blogging platform https://mataroa.blog/
|
| * Django for backend
|
| * Django management commands + cron for recurring tasks
|
| * Django templates for frontend
|
| * Very few lines of vanilla JS
|
| * uWSGI
|
| * Caddy for reverse proxy + SSL generation
|
| * Let's encrypt for wildcard SSL
|
| * Hetzner instance as server
|
| * Deployment through SSH + git with a simple script:
| https://git.sr.ht/~sirodoht/mataroa/tree/master/item/deploy....
| BackBlast wrote:
| I run personal food storage inventory system as a webapp/pwa:
| https://www.foodstorageplanner.com
|
| Front end runs Vue 2 with Quasar, JsBarcode, custom service
| worker, and PouchDB for local data persistence. The stack is
| optimized for ease of adding features with the pre-build GUI
| components, and front end PouchDB facilitates offline capability
| as well as keeping a user's various clients in sync.
|
| The backend uses an nginx proxy to CouchDB for data persistence
| and replication, a small node.js API, and product data from
| various free repositories. CouchDB serves as the master store as
| well as the hub of replicating data between clients on the same
| account.
|
| The architecture and tech choices are very closely tied to client
| desires. Clients planning for disasters demand the software
| continue to function offline or in degraded network environments,
| so this feature drives the overall offline-first data
| architecture. Data needs to remain in sync across a family's
| devices so the replication and keeping all the clients up to date
| is a big value add.
| [deleted]
| CerebralCerb wrote:
| An environment-health-security app for the B2B market
|
| * Flutter frontend iOS/Android
|
| * Parse Platform backend backed by MongoDb, hosted on Hetzner
| dedicated server with backups in Azure
|
| - Migrated from Firebase
|
| * ASP.NET 5.0 backend for various other integrations and periodic
| back office jobs
|
| - Migrated from Firebase Functions
|
| * Back office tools (CRM, billing etc) in React/Redux
|
| - Currently experimenting with Appsmith to allow for quicker
| iterations
|
| * Landing page in React
|
| - Originally just plain HTML. Re-wrote to React to be hip.
| kinj28 wrote:
| or you could check Dronahq.com
| CerebralCerb wrote:
| No self-hosted option unfortunately. It seems to be a more
| mature solution than Appsmith though.
| foxbee wrote:
| I would try Budibase instead of appsmith
| CerebralCerb wrote:
| Thanks, I'll check it out. Definitely seems like Budibase
| fits my use case.
| CerebralCerb wrote:
| I found Budibase cumbersome to use. It looks sleek, but the
| overall usability is worse.
|
| To delete a component you have to find it in the component
| list, open a hamburger menu and delete. This despite having
| a panel with component details open with plenty of screen
| real estate for action buttons.
|
| The API I use outputs data in a nested json ("results:
| ..."). As such Budi parsed everything into a single column.
| There was no clear way around it. Automations maybe?
|
| In general there was very little use of the screen with
| most things being empty. I guess it is earlier in
| development than Appsmith. I do like the aesthetics and SSO
| support though. It was also much easier than Appsmith to
| install self-hosted. I'll keep following the project.
| shogunpurple wrote:
| Hey, co-founder of Budibase here.
|
| This is fantastic feedback, thank you very much for
| taking the time to write this up.
|
| We totally agree with the points you have raised - in
| fact we are in the process of addressing the component
| deletion problem; providing the ability for users to
| delete components with the keyboard or use an action bar
| that will be shown in the preview.
|
| As for mapping data - this is something that is requested
| a lot and as such is high priority. We will be working on
| this in the coming weeks, providing full JS support and
| transformation logic for any source of data that you
| fetch from your Budibase applications.
|
| Great to hear you had a good experience using Budibase
| self hosted. We are constantly trying to make the
| Budibase setup process easier, both through our self
| hosting setup CLI and through standard deployment
| configurations that developers are used to - such as
| docker compose and helm charts for kubernetes. Which
| method did you use?
|
| Please do continue to follow Budibase - We are confident
| that you will love the features we planned on our roadmap
| for the next few months!
|
| https://github.com/Budibase/Budibase/projects/10
| arey_abhishek wrote:
| Hi CerebralCerb,
|
| I'm a co-founder of Appsmith. Thanks for trying us out.
| Would love to know the problems you ran into while self-
| hosting? We are replacing the install script with a
| docker compose, so errors should reduce. My email is
| abhishek@ if you need help.
| agd wrote:
| Elixir / Phoenix, Heroku with Postgres addon.
|
| Fronted mostly static with Stimulus + Hotwire for a few dynamic
| parts.
|
| Images via S3 + Imgix.
|
| Metabase (also on Heroku) for analytics.
|
| Trying to keep it as simple as possible. Not quite successful
| yet, but pleased with the tech stack so far.
| ecmascript wrote:
| How come you are using Hotwire instead of Liveview?
| agd wrote:
| Main reason is I think it's conceptually simpler. In
| particular, Liveview is stateful and Hotwire is stateless.
|
| I think there are some potential performance benefits of
| liveview (less sent over the wire and less work done server
| side) however I prefer to optimise for simplicity and fewer
| bugs.
|
| Edit. Caveat this with the fact that I haven't used Livewire
| in anger.
| marshallbananas wrote:
| I'm a fullstack JavaScript dev. I used to write everything in
| pure React and serve it with Express on Node but two years ago I
| started experimenting with all the fancy new frameworks and now
| my every project is:
|
| - Gatsby or Next depending on how dynamic the content is
|
| - Firebase for db, auth, and bucket storage, and sometimes
| hosting
|
| - Vercel for NextJS hosting
|
| - Recoil for state management; after years of using Redux it
| feels amazing, like it's a part of React
|
| - ImmerJS for immutability
|
| - SASS for CSS
|
| I love my current stack. It definitely took a while to make
| everything work together smoothly. I don't understand the
| complaints about modern web dev. I've been building websites for
| almost 20 years and this is the most productive and fast I've
| ever been.
|
| The only thing I still haven't figured out is CMS. Tried all of
| the fancy new headless CMSs but nothing works for me. Working on
| my own.
| midrus wrote:
| I think you don't find many problems because you're using
| firebase and that's outsourcing a lot of problems you'd face if
| you weren't using it.
|
| Many people don't want to be tied to a provider to this level
| (I think it's all about trade offs, not saying it is a good or
| bad thing).
|
| In the stack you described, in my experience, it is a real
| headache to get a stable and realiable system where you need
| authentication, permissions, users management, a CMS,
| background jobs, input validation, migrations,
| internationalization, etc.
|
| Ruby on rails, Laravel, Django, etc provide a clean, well
| documented and battle tested solution to all of this. The
| modern stack you describe, if not outsourcing all of this to a
| third party, it is pretty complicated and no one builds it the
| same way.
|
| That's why people complain about these modern stacks being
| complicated, you're just not feeling it because of the trade
| offs you've made. (Good for you!).
| Dockson wrote:
| Have you tried sanity.io (a headless CMS)? I used it in
| conjunction with Gatsby and have had a great experience
| overall.
| marshallbananas wrote:
| Yes, it was my favorite for a while. But recently I switched
| to GraphCMS for more basic data structure and I love it.
| Especially the UI.
|
| I think what the market is missing is a sort of locally run
| CMS that is file based with Sqlite and managed completely
| with Git. Something that can can be moved around with project
| easily and have great version control.
|
| Let's say you have a /content folder in your project that is
| it's own separate git repo, and there you have .md or .txt or
| sqlite files, and your assets, and there's a browser based
| client to manage it that runs locally.
| omnimus wrote:
| I think you've just described getkirby.com including the
| content folder naming.
| baoluofu wrote:
| I had a look at a lot of the available headless CMS systems
| last year. Didn't fancy any of them as they just seemed like a
| UI for building a db schema essentially. So I just added the
| relevant tables for my content to my db and then it was trivial
| to add content management UI to react-admin and add react pages
| on the main website to show the content.
| taylorlapeyre wrote:
| https://www.wren.co
|
| Postgres
|
| Redis
|
| Express + knexjs (TS on backend)
|
| Heroku
|
| Create React App front end.
|
| Simple, boring technologies.
| ggregoire wrote:
| Lot of PostgreSQL but not a single commenter uses PostgREST.
|
| Curious if it's just because the tool isn't well known enough or
| if it's because it has some serious drawbacks? Or people don't
| like writing SQL?
| throwthere wrote:
| I love sql and have tried Postgres and posgraphile. The idea is
| really attractive, having the datastore home ask the business
| logic. But it's kind of a pain to maintain and make changes.
| Plus there's not a huge ecosystem around it like django, ruby,
| Phoenix, next has. And then there's the whole exit thing-- it's
| not popular enough to find cheap developers to maintain it.
| theragra wrote:
| My friend uses it, I think, for for his single man GIS startup.
| theragra wrote:
| Works well, does what he needs it to.
| rawoke083600 wrote:
| linux,mysql,php,svelte,bootstrap and Go for any "heavy-lifting"
| Shish2k wrote:
| I'm not a registered company, but a solo dev who creates things
| for joy and ends up getting paid for it.
|
| Legacy projects: Plain HTML frontend with minimal vanilla JS for
| small progressive enhancements, PHP (custom framework) backend,
| Postgres, deployed directly on rented bare metal hosts, Salt for
| configuration
|
| New projects: HyperApp JS frontend, Python (aiohttp) or Rust
| (warp) backends, Postgres, deployed in docker containers on
| rented bare metal hosts, Ansible for configuration
|
| Notes:
|
| switched from salt-server to salt-ssh after there was a salt-
| server exploit which owned my whole fleet. Switched from salt-ssh
| to ansible-ssh after salt-ssh was broken on osx for 14 months
| (and counting...)
|
| Backups done with each project having a cronjob dumping a
| snapshot into a folder, then SyncThing copies those onto a remote
| backup host, with the backup host configured to keep old versions
| of files
|
| Debian stable for the hosts, language-specific images for
| containers. I wonder if my bare-metal OS runs basically only sshd
| and docker, is there a better choice than Debian? It works fine,
| just seems overkill...
|
| Monitoring done with telegraf + influxdb. Previously I had
| grafana in front. Recently moved to influxdb 2.0 with built-in
| dashboards, which is ok, but grafana was better (more graph
| settings (influx doesn't even do log-scale y axis??); more
| flexible alarming; graphing and alarming were integrated where
| influx has them separate) - considering putting grafana back even
| if it means re-creating all the dashboards and alarm rules for a
| second time...
| CodesInChaos wrote:
| > I wonder if my bare-metal OS runs basically only sshd and
| docker, is there a better choice than Debian? It works fine,
| just seems overkill...
|
| Fedora CoreOS is designed for container hosts, but I haven't
| used it.
| LAC-Tech wrote:
| Alpine is a lot simpler and easier to use than debian for me.
| Package manager is also a lot better.
|
| Perfect choice if you're going minimal.
| marstall wrote:
| love this question. hacking my stack to make it free or almost
| free is definitely one of the parts of having a side project i
| dig...
|
| (music app #1)
|
| - ios + macos native apps: swift +
| (reactnativeweb/reactjs/redux/orbitjs in a webview)
|
| - web: reactnativeweb/reactjs/redux/orbitjs
|
| - backend: none, just talk to streaming service APIs.
|
| - hosting: AWS Amplify
|
| total cost to run: $0
|
| (music app #2)
|
| - web front end: nextjs
|
| - backend (which just serves up some munged public domain data):
| postgres+rails running on a mac mini in my basement
|
| - backend (user profile data): firebase (i also get free
| auth/login with that)
|
| - hosting: vercel.com
|
| total cost to run: $24.95/year (for noip.com's dynamic DNS+SSL
| package).
| bradleyjkemp wrote:
| My principle for https://phish.report (a tool for semi-automating
| the reporting of phishing sites) is: do as much statically or
| server side rendered as possible.
|
| Deployment: Docker Compose. It's great to just set a DOCKER_HOST
| environment variable and I can deploy to any server with Docker
| installed.
|
| Backend: a Go service. Could be any language really but that's
| what I know. Just takes requests, does some business logic and
| returns HTML templates.
|
| Frontend: I'm not a frontend dev so I try to avoid it as much as
| possible. For UI, I use Bulma (a pretty comprehensive bunch of
| CSS components), with a tiny sprinkling of vanilla JS for small
| client-side animations (e.g. burger menu toggles). For any user
| action that hits the backend, I use https://htmx.org/ and just
| return a small HTML snippet as the API response. No point using
| client-side JS for that (no latency gains and makes the tech
| stack less homogenous).
| stepbeek wrote:
| > do as much statically or server side rendered as possible
|
| Love this - a terrific cheat code!
| BiteCode_dev wrote:
| Django, doit, tailwind, vuejs with vite, postgres, redis, poetry,
| git and ubuntu.
|
| I've tried many alternatives but every time things are just
| slower to dev.
|
| This stack has a great balance between integration and
| flexibility. The only things that matches the django ecosystem is
| the rail/symfony ones, but ruby and php outside the web are
| limited. Js has diversity but integration is seriously lacking.
| Anything else is too low level which is not a good cost/benefit
| ratio for me.
|
| Vite, vue and tailwind makes front dev fun again, postgres and
| redis can deal with everything without tuning up to millions of
| users and ubuntu and git are just easier to find tutorials for.
|
| The impact is huge as I can actually focus on my value
| proposition for my client. They can ask me to add a cms, a weird
| service auth or some messed up ftp pdf generation workflow and I
| can leverage existing libs 80% of the way, with just enough
| custom to charge premium.
|
| I end up twice faster, 3 times cheapers than my competition and
| yet my hour billing is very good and my stress at sea level.
| delgaudm wrote:
| Something different. I'm a Voice Actor, my "tech stack" is
| Reaper-iZotope
|
| My "business stack" is Zoho One, which has been fantastic for
| managing everything else that isn't my tech stack (crm, website,
| billing, books, docs, mail, file storage, etc...)
| lamroger wrote:
| Engagement Ring Marketplace: https://caratdrop.com
|
| Lots of AWS credit for 2 years from YC Startup School
|
| - ECS / Fargate / Docker
|
| - Deployed via Terraform and Github Actions
|
| - Next.js / Bootstrap, mostly from boilerplate Stripe made
|
| Chose bc I'm familiar with the backend. New to Next.js but
| boilerplate got me to an MVP the fastest.
|
| Wouldn't consider myself successful yet but I'm happy developing
| on my stack and that goes a lot way when I'm working
| mornings/nights on it.
| sideproject wrote:
| I run Newsy - https://www.newsy.co It turns your un-used domain
| names into a Reddit-like content aggregator.
|
| I use
|
| - Laravel - Vue - Postgres - Tailwind - Hosted on Vultr
|
| This has been my go-to stack for quite some time. Very happy with
| it. Perfect combination for a mostly CRUD app.
| Glench wrote:
| Take payments in browser extensions: https://extensionpay.com
|
| - $5/month Digital Ocean server
|
| - HTTP server: pm2 / Node / Express
|
| - Database: SQLite (because it's fast and needs fewer resources
| and less configuration than others)
|
| - Front/backend - custom full-stack Svelte framework.
|
| - Analytics: GA
|
| - Email: Mailgun
|
| - Uptime monitoring: Nine9s (https://nine9s.cloud/ from another
| solo dev I believe)
|
| The Svelte framework I made is really cool. It makes it really
| easy to have server-rendered pages (for search engines and fast
| initial page load), pre-compiled static CSS, code-splitting per
| page, and automatically generated JSON APIs per page that re-
| render the Svelte component, as well as lets me use Svelte on the
| front-end which makes development much easier for me. Example
| code here: https://github.com/Glench/full-stack-svelte-prototype/
|
| The tech stack has basically no effect on success as far as I can
| tell except that it's fast for me to develop.
| pyros2097-dev wrote:
| This is pretty good. I like the concept where api and ui is in
| the same file. Different from sapper and nextjs but pretty
| interesting.
| Glench wrote:
| Thanks! Yeah, I wanted a way to simplify/unify the front and
| back-ends while retaining flexibility to implement anything I
| need to. And of course it needs to be fast and have a small
| bundle size (thanks Svelte!). It's pretty close to SvelteKit
| with a few more assumptions baked in.
|
| Some people balk at having both back and front-end code in
| the same file but I like it since most of the time the code
| for both needs to be pretty tightly-woven in my experience.
| Also you can always put the back-end code in a separate file
| and import it for cleanliness :)
| Reulan wrote:
| I run a handful of dedicated PC game servers for a small
| community of gamers. https://noobshack.com and https://reulan.com
|
| What is your tech stack?
|
| - Frontend (JavaScript, NextJS)
|
| - API (Golang)
|
| - Observability (Honeycomb.io - for events, k8s metrics, visual
| data analysis)
|
| - Infrastructure Hosting (Kubernetes - container platform to run
| it all, in my case Google Kubernetes Engine)
|
| - Deployment (Terraform - all deploy components are written in
| HCL)
|
| - TLS (Let's Encrypt)
|
| Why did you choose it?
|
| I wanted to have a minimal set of tools to manage my
| infrastructure, with the varied workloads of (API, game server,
| website, etc.) building containers and running them on the
| Kubernetes platform made it a one stop shop for storage, network
| and compute uses.
|
| Additionally on the deployment side Terraform providers and in
| some cases modules were already available for me to use for
| bootstrapping specific infra components I am interested in.
|
| Do you think your choices had any impact on your success?
|
| It's allowed me to create a large amount of boilerplate, so I'm
| at a good point if I wanted to add more servers of different
| types it a relatively easy change compared to how I managed it
| all manually years ago.
|
| This side project has allowed me to develop a technological
| skillset that definitely have helped me critically think in a
| software development career route.
| shantnutiwari wrote:
| I dont run a company, but I am very pleased to see:
|
| * Many founders are using Digital Ocean or Linode or something
| similar/simple, and not complicated k8s/aws setups
|
| * Many founders are using boring but stable tech like
| python/django or rails or similar for the backend, and vanilla js
| for the frontend
|
| Looks like where it matters, ie, shipping something, most are
| using boring but stable tech instead of Fad-of-the-week
| soulchild37 wrote:
| I don't get why you are being downvoted, I am happy to see
| similar phenomenons as well.
|
| I am using similar stack for my own profitable web apps as
| well.
| adrianvincent wrote:
| I taught myself to program to build https://comparedial.com/, a
| comparison website for phone contracts in the UK.
|
| Front end: plain JavaScript
|
| Back end: Node.js
|
| Host: $10 DigitalOcean droplet
|
| Web server: Nginx
|
| SSL: Let's Encrypt with certbot
|
| Proxy: Cloudflare
|
| Database: Postgres
|
| Caching: Redis
|
| Indexing: MeiliSearch
|
| I wanted to learn JavaScript and understand the fundamentals, so
| I used vanilla JavaScript for the front end without any framework
| (React, Vue, etc).
|
| Initially, the comparison engine was slow, so I learnt about
| indexing and added MeiliSearch to the stack.
|
| I try to keep it as simple as possible and only add what I need.
|
| I plan on migrating to Next.js eventually - not because I need
| to, but because I think it will be a good learning experience.
| However, that's not my priority right now, and is probably an
| excuse for marketing/content procrastination!
| fortydegrees wrote:
| Hey! This is brilliant!
|
| Obviously you speak about the tech stack you use here, but your
| UX is absolutely perfect. I just used your product and got
| exactly what I wanted without even thinking. My brain didn't
| second-guess myself once. I didn't read anything superfluous -
| in fact I don't think I read anything at all. The search box
| and images of the phones did it all for me, and the
| autocomplete for search was perfect. I loved that only after I
| searched did it give me the option to refine (like size of
| model)
|
| I usually use comparethemarket or something similar when
| shopping around, and it's a bit of a pain - though I only
| realised how much of a pain since using yours.
|
| I don't know how much conscious thought and work you put into
| the UX - as you mainly talk about the tech - but it's great.
| Well done!
| adrianvincent wrote:
| Thank you, your comment made my day!
|
| I come from a design background. I didn't like the UI/UX of
| similar comparison sites, so my aim was to improve upon
| what's already out there. Glad to see someone noticed!
| adulion wrote:
| this is fantastic- do you get an affiliate fee?
|
| i'm looking a new phone and total cost of ownership might swing
| buying it through this site
|
| where do you source the deals? is there an api?
| adrianvincent wrote:
| Thank you. I do get an affiliate fee for each sale. Most
| retailers provide csv feeds when you join their affiliate
| program. Parsing and organising the data can be quite
| difficult as there is no uniform structure and most retailers
| provide bad/incomplete data. There are a lot of weird edge
| cases I need to work around.
| owyn wrote:
| _There are a lot of weird edge cases I need to work
| around._
|
| This sounds like a potentially more valuable product to me.
| Any time I find myself doing integration work like that in
| an e-commerce setting I think "hm, could this be the Stripe
| of X".
| adrianvincent wrote:
| Yep, I've definitely thought about it. There's only one
| other company in the UK that does this. They supply their
| feed/API as a service to nearly all the big comparison
| sites.
| ggregoire wrote:
| Hey, great service! Just FYI (you probably already know
| tho):
|
| - some links automatically close after loading (e.g. the
| first link for the iPhone 12). Maybe the deal doesn't exist
| anymore?
|
| - some sites seem to strip your affiliate id from the URL
| (e.g. the second link for the iPhone 12, metrofone.co.uk)
| adrianvincent wrote:
| Thanks!
|
| Some ad blockers are very aggressive at blocking
| affiliate links. uBlock Origin blocks all
| track.webgains.com links and even closes the tab if
| there's a redirect, which is probably what is happening
| with the first link. I'm adding a feature that will call
| an ajax request first, and if it's blocked then I will
| simply redirect to an untracked link. Unfortunately I
| will lose potential commission this way, but at least the
| website will still work for everyone. It should hopefully
| work if you disable your adblocker.
|
| As for the Metrofone link, it's just a redirect on their
| part. I did a curl request to check this:
|
| > GET /pclick.php?p=29805977293&a=119158&m=6506 HTTP/1.1
|
| > Host: www.awin1.com
|
| > GET /basket/add/contract/iphone-12-5g-128gb-
| black/three-100gb-new-24-month-14.00/free-delivery?source
| =awin&awc=6506_1629914525_c508aa142e90213248adbdee4b99555
| 0&utm_source=CompareDial&utm_medium=AWIN&utm_campaign=Com
| pareDial HTTP/2
|
| > Host: www.metrofone.co.uk
|
| > GET /contract-phone-deals/iphone-12-5g-128gb-
| black?basketRedirect=true HTTP/2
|
| > Host: www.metrofone.co.uk
| themulticaster wrote:
| Just so you know, on Firefox 92.0b7 the phone images won't
| load. Apparently the network request works fine, but when
| trying to view the image directly Firefox says that "The image
| <...> cannot be displayed because it contains errors.".
| adrianvincent wrote:
| Thanks, I couldn't reproduce it with the stable build but I
| did with 92.0b7. Seems to be related to avif images and a bug
| in libheif. Trying to fix now.
|
| https://github.com/lynnandtonic/nestflix.fun/issues/65
|
| https://github.com/strukturag/libheif/issues/477
| Mikeb85 wrote:
| Still haven't finished shipping the product, but the newest thing
| I've been working on is a site/app for analysing asset prices
| (stocks, commodities, land/homes).
|
| > What is your tech stack?
|
| Ruby, Rails, Postgres, Sidekiq, Redis, Hotwire, Stimulus,
| TailwindCSS and Echarts for visualizations. Heroku hosting
| because I don't want to deal with devops and hosting costs are
| the least of my worries (data's expensive these days!).
|
| > Why did you choose it?
|
| My background is in economics, trading and business (among other
| things). I picked a tech stack that makes the parts I have the
| least experience with (web development) easy and the Rails
| ecosystem really can't be beat. The 'default' Rails tech stack is
| also nicely curated and seems to just work.
|
| For the parts I do know very well (economics, financial analysis)
| Ruby is a great language. Python/R have a few more packages (and
| I've used R quite a bit) but I'm rolling my own business logic
| anyway and I prefer Ruby as a language to both.
|
| > Do you think your choices had any impact on your success?
|
| Progress has been surprisingly quick so hopefully!
| heshiebee wrote:
| I run an e-commerce shipping tool that integrates with
| Shipstation to automate shipping. Shipmatix.com
|
| - Ruby on Rails
|
| - Postgres
|
| - Redis
|
| - AWS S3
|
| - Heroku
|
| I choose Rails since it allowed me to get off the ground running
| and hosted it on Heroku for its ease of use and it saves me a lot
| of time with its default configurations.
|
| I don't have many clients now but I should be able to handle
| hundreds of users on my current setup based on my pod testing.
| kubami wrote:
| I make a lot of prototypes along with maintaining production
| systems. A lot of the projects have to do with ML/NLP, which
| basically means I have to chose python as a core backend
| language. Which is great, I love python. My core production
| system and every new prototype is: - Django + PostgreSQL - Celery
| + redis - for long-running tasks - React - GraphQL - Terraform +
| Cloud-init to provision the infrastructure
|
| All quite boring and stable, the way it should be :)
|
| I have a longer writeup, along with my reasoning for the
| technologies I chose: https://kubami.com/articles/my-modern-saas-
| software-stack/
| axelroze wrote:
| Could you share what python libraries you use in your projects
| for ML and NLP?
| kubami wrote:
| Some of the libraries I use
|
| - nltk - preprocessing
|
| - spacy - preprocessing, entity recognition, part of speech
| recognition
|
| - gensim - Similarity and clustering
|
| - pytorch - ML model building
| f6v wrote:
| How time flies... React, GraphQL and Terraform are considered
| boring and stable.
| kubami wrote:
| Fair enough for the GraphQL.
|
| However I'd say React is so widely use I'd say it is boring
| and stable (as the frontend tech goes)
|
| Terraform, well, what is the alternative? Clicking through
| web interfaces, or bash scripting the cloud-provider CLIs.
| f6v wrote:
| 50+ sysadmin told me Ansible is the rock-solid.
| strzibny wrote:
| Terraform hit 1.0 quite recently, so let's wait for all
| that boring and stable please, otherwise the words lose
| meaning...
| axelroze wrote:
| Not a single-person company but I worked on projects and in roles
| where I was the single person making decisions. Here is my small
| overview of the ML (machine learning) and DS (data science)
| world. Hope you find it useful
|
| > What is your tech stack?
|
| The choices are python, scala, julia, matlab and R. Of these
| python takes at least 90% of the market. I am using python and
| will do so for the forseable future. Don't like it but it's super
| practical thing to do. Fingers crossed Julia hits mainstream in
| the next few years.
|
| Since I am mostly in the computer vision world my stack is torch,
| torchvision, pytorch-lighting, opencv, scikit-image, scipy and
| numpy. From time to time i call upon numba when it is impossible
| to avoid a loop (python loops are sloooooow, numba JIT compiles).
| Very rarely i coded stuff in C++ and used cython to link it to
| rest of python. Most of the stuff is already there. For model
| inference serving i use fast api.
|
| > Why did you choose it?
|
| I chose python because there is no real choice here. It's a
| monopoly. Winner with most ready to use packages takes all. I am
| rooting for Julia to eventually win over python as using python
| as the (big) data language is contradictory given how slow the
| interpreter is. Also it is not a GPU native language.
|
| Torch was more of a personal choice as I really hated tensorflow
| 1.X versions and the compute graph. It was hard to debug and
| follow what is going on. Tensorflow 2.X moved to same mode of
| computation like torch but it was already too late for me.
|
| > Do you think your choices had any impact on your success?
|
| I think going with tensorflow would have worked as well. Lot more
| annoying but good base. Using language other than python would
| have been a bad idea. Practical ML is a lot like JavaScript
| WebDev. Get a bunch of stuff from 3rd party packages and write
| some glue code.
| ChrisMarshallNY wrote:
| I have a couple of corporations:
|
| https://littlegreenviper.com
|
| https://riftvalleysoftware.com
|
| It seems most folks have "tech stacks," which, to me, means
| "Internet-based software applications, or SaaS." I write native
| apps for Apple devices (iOS/iPadOS, WatchOS, TVOS, and MacOS).
| Some, use Internet-derived services, but some are also standalone
| on the device, or use things like Bluetooth.
|
| My "Stack" is basically Xcode.
|
| I've found that CI/D tools aren't actually very useful, for me. I
| work in a very dynamic fashion that has lots of twists and turns,
| and these tools tend to be "Concrete Galoshes"[0]. I'll script
| portions of the build, like docgen.
|
| Basically, the four apps that I use, are Xcode, BBEdit,
| SourceTree, and Adobe Illustrator (for creating assets. I like to
| use vector, if at all possible). I have dozens of others that are
| used on an "as-needed" basis, like Charles Proxy, or Postman. I
| also have a bunch of devices that are used as test subjects.
|
| I make heavy use of Apple's TestFlight beta-test service.
|
| And I use GitHub as my offsite repo (pro account/free account ).
|
| [0] https://littlegreenviper.com/various/concrete-galoshes/
| yakubin wrote:
| 1. How do you handle bug reports? Do you use a ticketing system
| where your customers can report bugs?
|
| 2. Do you publish directly to the App Store, or do you send the
| application to the customer who publishes it for themselves?
| ChrisMarshallNY wrote:
| 1. I had originally set up a JIRA ticketing system, but never
| got bug reports, so I dismantled it. I dislike structure for
| the sake of structure.
|
| These days, I get maybe one report, every couple of months.
| Most often, I find bugs, myself, through testing. I tend to
| deal with bugs immediately. A sticky pad on my desk, or a
| self-email, is usually sufficient.
|
| On the app I'm currently developing, I use GitHub Issues to
| track bugs. Kinda quiet, but it's a good way to catalogue
| upcoming features. I still tend to fix bugs immediately. I
| run my projects as "constant beta," so I try to keep them
| bug-free, from the start.
|
| Basically works pretty well.
|
| 2. I publish directly. I've had over 20 apps, but most have
| been deprecated, by now.
| dowakin wrote:
| https://optduty.com/ - smart on-call scheduling for PagerDuty.
| Small startup with about 20 clients right now and $30k ARR.
|
| Front-end: ClojureScript, Rum and Javelin spreadsheet cell for
| state handling
|
| CSS: Tailwindcss
|
| Backend: Django + Django REST framework
|
| Deployment: Ansible
|
| Analytics: GoAccess
|
| Statics: GoHugo
|
| Misc: Nginx, Postgres, Redis Docker only for running client
| specific optimizers.
|
| A lot of tools in the list, but everything is pretty lean, and
| allow me iterate really fast.
|
| About success criteria, having more analytics would help me get a
| few extra clients, but because it's side project without any
| investors I'm happy with trade off.
|
| And after companies are starting to use the produce, I hear a lot
| of positive vibe about strong privacy.
| tosh wrote:
| I built https://applesilicongames.com with Python and Flask on
| https://www.deta.sh
|
| Currently looking into adding Tailwind (CSS)
| chinathrow wrote:
| Boring, but it works and I am very fast with it:
|
| PHP with Laminas FW
|
| MySQL
|
| Bootstrap
|
| jQuery
|
| AWS SES
|
| Twilio
|
| Auth0
|
| Google Workspace
|
| Jira
| DrNuke wrote:
| Content project at https://www.tenproblems.com/ , Literature
| Reviews for Inquisitive Minds. Democratizing academic debates for
| the 2020s against fake news, sensationalism and outright biased
| agendas.
|
| Wordpress (anchor website & free content) + Amazon Kindle (paid
| content & casual customers management) while using Google and
| Google Scholar as the main source for up to date references and a
| word processor to write the booklets.
|
| Still tinkering about blog posts (more free content on the
| website to attract more traffic through SEO buzzwords) vs simple
| dedicated software demos on github (to create a portfolio while
| testing which ones to pursue commercially down the line).
|
| Success? Break even in terms of sales for now, plus thousand
| visitors from all over the world enjoying the free content, and
| someone kindly commenting to help or just to say thank you.
| montenegrohugo wrote:
| I'm currently building namy.ai (AI domain name generator) solo,
| and here's my tech stack:
|
| BACKEND:
|
| - Python for the backend. Just a great, batteries included
| language that lets me do what I want fast and doesn't get in my
| way.
|
| - Flask: a web framework for Python. There's Django too, but
| Django is no fun. Flask is small and exactly what I want.
|
| - Pytorch: My DL framework of choice. Again, understandable,
| makes sense, and fastly iterable. No archaic nonsense (looking at
| you Tensorflow). Also of course pandas, numpy, scikit etc...
|
| - Scrapy: pretty powerful scraping library
|
| - PostgreSQL: classic
|
| FRONTEND: I'm not a frontend guy, but it's a necessity, so I go
| with the simplest.
|
| - Bootstrap: Lots of templates, easy to understand. I'm not
| entirely happy with it though; I wanted to try Tailwind.css for
| my next project
|
| - Simple, custom Javascript. No complex frameworks. I barely
| understand JS; I don't want to use a framework until I feel
| comfortable with bare JS.
|
| DEPLOYMENT & OTHERS:
|
| - Heroku: a bit expensive but so simple. Removes all the hassle.
| I don't think deployment is fun, so Heroku is my friend.
|
| - Google Analytics: I don't want a lot of analytics, and GA just
| works. I do want to move to a more privacy friendly choice.
|
| - Uptimerobot for detecting problems. Simple, works, free.
|
| With this tech stack I feel really comfortable, I can iterate on
| all layers, and I really do have fun developing on it. I can
| shoot out an MVP for most projects in a week.
|
| Here's some stuff I've built with this:
|
| https://www.namy.ai (still building it, especially improving the
| AI model right now)
|
| https://www.hugomontenegro.com
|
| https://www.remindy.me
|
| My biggest gripe in this tech stack is bootstrap, but I think
| despite of that and me not being a frontend engineer I still
| managed to give the sites a bit of a non-generic flair.
|
| Happy to answer any comments!
| noahjk wrote:
| I gave it a shot with a fairly uncommon prompt, I'd imagine,
| and while some of the suggestions were a bit funky, I liked
| what I saw when compared to more traditional options!
|
| I like the visual flair you added... wouldn't have guessed it
| used bootstrap!
|
| At first when I saw the footer, I assumed Hugo was the SSG
|
| Also on your self-titled domain, your logo stretches past my
| viewport (iPhone mini)
| montenegrohugo wrote:
| Thanks!! Here's a few answers:
|
| - AI Model is a bit primitive still, I've been focusing on
| building the frontend recently. Now that I'm somewhat happy
| with that (viewport errors notwithstanding ^^), I'm focusing
| on the data science part of it. I hope to have a _much_
| better model deployed in 5-7 days.
|
| - Thanks!
|
| - I've gotten that from someone else too. I kind of like
| putting my signature there, but if it's confusing I might
| change it. Maybe I could use my full name?
|
| - Thanks for notifying! I'll fix that asap
| codeapprove wrote:
| CodeApprove is a better code review tool for teams on GitHub:
| https://codeapprove.com
|
| The frontend is Vue 2.0 and TailwindCSS. No other major libraries
| besides the Vue standards (router, store, etc).
|
| The site is delivered by Firebase Hosting and the backend is all
| Firebase (Firestore, Auth, Storage and Cloud Functions)
|
| I absolutely love this stack. It's so simple to run and requires
| no maintenance. Plus the fixed cost is $0. To deploy I use
| manually-triggered GitHub Actions workflows.
|
| The best part of the whole thing is the local dev experience.
| With the Vue CLI and the Firebase Emulators I can run my entire
| stack locally with hot reload across frontend and backend. When I
| push to production I am confident.
| ralston3 wrote:
| ReactJS on the FE, Django on the BE. Postgres for the DB. Redis
| cache. AWS provider - specifically for EC2 and Secrets Manager.
| Automating everything via bash scripts and config files per
| environment (dev, prod, etc)
| danjac wrote:
| I run a side project podcatcher site https://jcasts.io. As I
| don't have a lot of spare time and this isn't making money,
| simple+cheap are important factors, so I stick with what I'm
| familiar with and only adopt new things when I have the need.
|
| - Django
|
| Enough said, really, it's a solid workhorse with a healthy
| ecosystem. The admin feature is very useful for simple backend
| data management. No other particular reason to pick this over
| Rails, Laravel etc other than my familiarity with Python and the
| framework.
|
| - PostgreSQL
|
| No issues here, works just fine. I use the full text search
| instead of a separate search indexer such as Elastic - it makes
| the deployment simpler and reduces overhead of serializing and
| syncing the search index and database. You can get good
| performance by paying attention to queries and indexing.
|
| - Redis
|
| Caching and queuing. I use rq [1] rather than Celery for running
| background tasks, it's less complex and generally easier to work
| with, especially if your needs are simple.
|
| - HTMX and AlpineJS
|
| SPAs can be a pain to build and maintain if you are a solo
| developer - it's almost like building two separate applications,
| and then you have to handle the integration of your backend API
| and frontend app. HTMX [2] lets me get 90% of the way there while
| still using plain Django views and templates, while still
| providing a smooth end-user experience. AlpineJS [3] is great for
| dealing with the more complex interactions where Javascript is
| really needed, but I still want some lightweight structure.
|
| - Tailwind
|
| I'm not a designer/CSS guru, so Tailwind is great for providing
| sensible defaults. Was a bit skeptical at first of maintaining
| long inline class names vs something like Bootstrap, but Tailwind
| turned out to be surprisingly productive.
|
| - Dokku
|
| Basically Heroku without the expense. Has a ton of features and
| buildpacks for managing single-node applications, from
| LetsEncrypt integration to database backups. As I run the whole
| thing on a single Digital Ocean droplet, this is perfect - not
| sure what the next step would be when/if I need to scale up to a
| multi-server setup.
|
| - Ansible
|
| For any server setup and routine maintenance stuff.
|
| - Mailgun
|
| Email sending. Still on free tier.
|
| - Github Actions
|
| CI/CD pipeline. Works fine, very few outages or issues, pretty
| easy to set up.
|
| - [1] https://python-rq.org/
|
| - [2] https://htmx.org
|
| - [3] https://alpinejs.dev/
| midrus wrote:
| I use almost the same stack, except instead of Alpine + htmx I
| just use Unpoly. Have you tried it? If so, why did you prefer
| your choices? Any reason you'd recommend your approach?
|
| https://unpoly.com
| danjac wrote:
| I looked briefly at Unpoly - it looks an interesting project,
| but htmx had all the features I needed and the developer was
| very responsive to questions and bugfixes. It also had good
| library support for Django (django-htmx).
|
| I also used Hotwire for a while, but that seemed much more of
| a Rails thing and again, htmx was just a better fit for what
| I needed to do.
| baoluofu wrote:
| Both API and web app served out of AWS lambda/API
| Gateway/Cloudfront. Back office app served from S3.
|
| - React and next.js for the web app.
|
| - Node.js & express for the API.
|
| - React-admin for the back office.
|
| - Postgres for the DB.
|
| The biggest benefit to me of the above stack is running it out of
| AWS lambda. Pay only for what actually gets used, and more
| importantly it will scale to any sudden surge in customers
| without any effort on my part.
| midrus wrote:
| Hi, honest questions of things I struggled a lot with when
| tried to build applications with his stack:
|
| What do you use for accessing the database or as ORM, etc?
|
| How do you do validations server side and show error messages
| to the user?
|
| How do you do i18n in general, and also related to the previous
| question (error messages)
|
| Do you use any CMS? How do you explore your data?
|
| How do you do background jobs?
|
| How do you do migrations?
|
| How do you do authentication and permissions?
|
| All these things are what drove me back to Django. I wonder how
| people solve this without reinventing the wheel or having to
| write and test a ton of glue code. I wonder if I'm missing
| something or I'm just too lazy or not good enough (I'm not
| trolling, just genuine concerns)
| robertlagrant wrote:
| Presumably Next answers some of those, and things like
| background jobs must just be lambdas as well?
| midrus wrote:
| Can you point me to the docs or those solutions? I haven't
| found them when I looked for. Of course there are tons of
| examples integrating with third party libraries, etc...but
| tying everything together is what worries me.
| saimiam wrote:
| https://moogle.cc is a fully functional React SPA blog with Bulma
| css for styling. Uses emails (yes you heard that right) as the
| CMS to extract content and images.
|
| Interfacing with emails is through S3, API Gw, Cloudfront,
| lambdas (nodejs), and step functions. One small part of the
| product is on an Ec2 box. Everything else is serverless.
| p0nce wrote:
| Website: HTML/CSS/JavaScript, hosted with Nginx on one VPS. D
| language for products/tools/website.
|
| SaaS:
|
| - CloudFlare
|
| - Google My Business for emails
| Crazyontap wrote:
| > What is your tech stack?
|
| Backend: LAMP (Linux Apache Mysql Php)
|
| Backend Framework: Php no framework only composer
|
| Frontend Framework: Vuejs 2.6
|
| Deployment: rsync
|
| Hosting: contabo (8gb/EUR5)
|
| Email: SES
|
| Error reporting: Honeybadger (it's free)
|
| > Why did you choose it?
|
| It's something I've known my entire life and it works great for
| me.
| jjice wrote:
| > LAMP
|
| > PHP no framework
|
| > rsync
|
| Simple and to the point, can't go wrong. I always like seeing
| some classic LAMP stack on postings like this.
| codingclaws wrote:
| I built an open source Reddit/HN clone:
|
| https://www.peachesnstink.com
|
| The back-end is Node.js and PostgreSQL (no ORM). The front-end is
| plain HTML, plain CSS and plain JavaScript. I chose that stack
| because I wanted to try Node.js and Postgres, and I'm not a big
| fan of front-end frameworks. I don't think the stack matters but
| people think the site is fast.
___________________________________________________________________
(page generated 2021-08-25 23:03 UTC)