首页

Ask HN: Companies of one, what is your tech stack?

172 点作者 amitprasad超过 2 年前
Companies of one meaning either a solo developer or just you managing the entire operation.<p>Following in the spirit of user ecmascript’s annual posts, I’d like to follow up and ask this year’s (overdue) round.<p>Last year’s discussion post: https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28299053

97 条评论

koonsolo超过 2 年前
You&#x27;re going to love to hate this: Best choice I made was using WordPress!<p>I run <a href="https:&#x2F;&#x2F;rpgplayground.com" rel="nofollow">https:&#x2F;&#x2F;rpgplayground.com</a>, a web tool to make RPG games without coding (6000+ user published games) The app itself is written in Haxe. My website is WordPress.<p>Haxe because it will be easy to port to any device.<p>Why was WordPress the best choice? Basically everything you need has a plugin.<p>I needed a forum: bbPress<p>I needed a community where my members post updates: BuddyPress<p>I need to send out a newsletter, and most Saas options are crazy expensive: plugin mailster.co, 1 time payment. (Using critsend.com)<p>Needed some faq page with search, needed a captcha for registering, experimented with ads, post updates to discord, user reporting system, ... You name it, there is a plugin for that.<p>I also have an external person who writes my newsletters, but isn&#x27;t allowed push the &quot;publish&quot; button. All thanks to the user roles functionality.<p>Of course I needed my own plugin to integrate my app and show shared games. I could have written that myself, but then I would lose out on time developing my tool. So I was able to hire a cheap php WordPress developer who made my custom plugin. Went great!<p>WordPress is so crazy powerfull, that if you want to create some community website, it offers everything you need.<p>I know my experience is not what many of you would expect, so therefore thought it was interesting to share it with you.
评论 #32960486 未加载
评论 #32960874 未加载
评论 #32961132 未加载
评论 #32960600 未加载
评论 #32966651 未加载
aaronbrethorst超过 2 年前
Hosting on Render.<p>Stack: Postgresql+Rails+Hotwire.<p>I really dig Stimulus and Turbo Frames. It took me a little while to really wrap my head around Turbo Streams. I think the documentation is pretty bad compared to the rest of the Hotwire stack, but—holy moly—once I had it working, it&#x27;s really like a superpower for front-end development. Using Turbo Streams reminds me a bit of the sort of &#x27;head exploding&#x27; moments I had first working with Rails back in 2007 or so. <a href="https:&#x2F;&#x2F;www.hotwired.dev" rel="nofollow">https:&#x2F;&#x2F;www.hotwired.dev</a><p>UI: I use Tailwind and Tailwind UI, and aggressively componentize the UI with ViewComponent to make it easier and more manageable to build reusable components and to keep from shooting myself in the foot. Tailwind would be frustrating to use if you crafted bespoke UI elements on every page, but it&#x27;s an absolute godsend if you&#x27;re componentizing all of your UI. (Also, if you&#x27;re not componentizing your UI, why are you wasting so much of your time?) <a href="https:&#x2F;&#x2F;www.tailwindcss.com" rel="nofollow">https:&#x2F;&#x2F;www.tailwindcss.com</a><p>APM: I use <a href="https:&#x2F;&#x2F;skylight.io" rel="nofollow">https:&#x2F;&#x2F;skylight.io</a> for performance monitoring, and <a href="https:&#x2F;&#x2F;sentry.io" rel="nofollow">https:&#x2F;&#x2F;sentry.io</a> for exception tracking.
评论 #32960363 未加载
评论 #32961290 未加载
nicbou超过 2 年前
I run <a href="https:&#x2F;&#x2F;allaboutberlin.com" rel="nofollow">https:&#x2F;&#x2F;allaboutberlin.com</a><p>It runs on Craft CMS inside Docker on DigitalOcean. I chose Craft because it lets you create custom post types with custom fields really easily. The matrix fields let you have rich text mixed with other widgets. All of this was a pain in WordPress.<p>On the other hand, using not-WordPress means that you&#x27;re on your own. You can&#x27;t hammer a bunch of plugins together and call it a day.<p>The theme is entirely custom-made. It&#x27;s not exactly groundbreaking, but I&#x27;ve spent a lot of time optimising for page speed and content readability. It&#x27;s heavily inspired by the NHS&#x27; website.<p>I use nginx to bind everything together and cache responses. I wasted way too much time getting cache purging and automatic SSL certs to work. It has no business being that complicated. I regret taking 5 years to look at Cloudflare.<p>The tools and calculators (<a href="https:&#x2F;&#x2F;allaboutberlin.com&#x2F;tools&#x2F;" rel="nofollow">https:&#x2F;&#x2F;allaboutberlin.com&#x2F;tools&#x2F;</a>) are built with Vue, with vanilla JS business logic libraries.
评论 #32960980 未加载
评论 #33045977 未加载
评论 #32967946 未加载
评论 #32961084 未加载
评论 #32961062 未加载
pavlov超过 2 年前
I have some stuff running with minimal maintenance, never any surprises, just chugging along year after year.<p>These services are practically stackless: there’s a Node app with Express as the only dependency. No database, persistence to local files, entire data model cached in memory as JavaScript objects. When the service restarts, it rebuilds the memory image from the file system. The data formats are a mix of mostly append-only logs (JSON lines) and some plain JSON for objects where it doesn’t make sense to keep the full change history. Backups and restore to another server are super easy when there’s a bunch of files and a single Node script to launch.<p>Lately I’ve been building a hobby product where the front-end is stackless too. Plain HTML and modern JavaScript, using ES modules in the browser. No build chain at all. I don’t need to support IE so all modern language features are natively available, and the app is small enough that a bundler doesn’t deliver huge benefits. This means I don’t have access to npm, but so far it’s been fine because browsers do so much these days and the APIs have improved tremendously in the past decade.<p>I’ll probably stick with stackless for anything I maintain alone and doesn’t have huge growth expectations. But I wouldn’t expect to convince anyone else in a professional environment, so in the real world there’s no escaping from half-gig node_modules and complex Docker builds and all that dance.
tothrowaway超过 2 年前
I run several SaaS apps on a single big OVH server. It handles 6 million non-cached requests per day. The backend stack is pretty basic: Django&#x2F;Python, MySQL, redis (pub&#x2F;sub) for websockets. But the secret sauce is OpenResty. I use Lua scripts to do more sophisticated page caching (because the builtin nginx caching is so primitive), DDoS protection, handling websockets, offloading long running requests, and routing between my unix socket upsteams. It&#x27;s a poor man&#x27;s Cloudflare in 1500 lines of Lua.<p>The apps were made long before Docker was a thing, so they just run as regular ol&#x27; processes, locked down as much as possible with systemd magic. I originally used uwsgi as my wsgi server, but it turns out gunicorn is vastly more efficient so I use it exclusively now.<p>I run a warm standby server at Hetzner so I can route traffic there in a pinch. I have a second warm standby running at my house because I&#x27;m truly paranoid about automated account bans (despite the very innocuous nature of my business). Backups are at rsync.net.<p>My single point of failure is DNS. I had a good relationship with DNSMadeEasy so I was not too worried about automated bans. But they were just bought by DigiCert, so that&#x27;s a problem now.<p>Payments are handled with Stripe and PayPal. I added PayPal (despite my hatred of the company) just because I&#x27;m scared Stripe will ban me without warning, for no reason, and won&#x27;t communicate with me.<p>For user uploads, I have an aiohttp Python server that streams files to Wasabi and Backblaze, and caches them in nginx at the same time. So my cloud bandwidth bill is usually 0.<p>The websocket layer is kind of wonky. Originally, I used the Python websockets asyncio library to do everything. It worked for a while, and then I had to make it multi-process to spread the load. But it was just eating resources like crazy. I decided to use OpenResty&#x27;s websocket stuff to handle the connections, but I didn&#x27;t want to write all the complex application logic in Lua. So I used Redis pub&#x2F;sub to pass messages back and forth from OpenResty-land to a pool of (sync) Python processes. It worked much better. That said, I&#x27;m a novice with asyncio, so I could very easily be to blame for the original performance problems.<p>And sorry, I won&#x27;t tell you the name of my apps (I don&#x27;t need any more competitors!)
评论 #32979730 未加载
评论 #32961637 未加载
评论 #32961193 未加载
kureikain超过 2 年前
I used a weird stack of:<p>- Rails: so I have a UI quickly together with some admin and a interactive shell to allow me interact with the app easiser - GoodJobs:<a href="https:&#x2F;&#x2F;github.com&#x2F;bensheldon&#x2F;good_job" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;bensheldon&#x2F;good_job</a> Used this for any Rails based job - Postgres for everything. No Redis. I found redis is a source of pain when it misbehave and reach max mem with eviction policy. When Redis mem is big, restart it take quite a bit of time. - Huge server: I rent hetzner server and scale vertically. - Golang + sqlc: I used Rails SQL schema to pair it with golang sqlc <a href="https:&#x2F;&#x2F;sqlc.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;sqlc.dev&#x2F;</a> it makes write SQL way easier - Stimulus - Docker Compose for Rails deployment - SCP&#x2F;Systemd for go-based servic<p><a href="https:&#x2F;&#x2F;mailwip.com" rel="nofollow">https:&#x2F;&#x2F;mailwip.com</a> is my email forwarding saas app.
m12k超过 2 年前
Rails (6.1), Postgres, Redis, Sidekiq<p>Hosted on Heroku, using Sentry for error tracking, New Relic for performance monitoring, Sendgrid for email. Recently ditched Google Analytics in favor of Plausible for general analytics and Ahoy (Rails middleware) for deeper in-house analytics. Using Intercom for support&#x2F;chat widget, but planning to switch to Chatwoot. Considering moving off Heroku, but the most obvious contender, Render, doesn&#x27;t yet have high availability postgres with automatic failover.<p>Deployment is set up so any push to the master branch on GitHub is automatically deployed to production. Merging to the master branch can only be done via a PR, and needs green status from both linter (Rubocop), tests (Rspec run on CircleCI, both unit and integration) and coverage (100% test coverage required, verified by codecov.io).<p>UI is Bootstrap (but feeling long in the tooth), and server side rendering with a sprinkling of javascript. Still mulling over hotwire&#x2F;turbo vs alpine vs stimulus vs react for some upcoming UI that requires more interactivity.
评论 #32960358 未加载
评论 #32991499 未加载
评论 #32963515 未加载
glennsl超过 2 年前
Building an agtech platform (with quite a few other people, including a designer and data scientist, but I&#x27;m currently the sole developer, and for the most part it was built by a single developer).<p>Backend: Rust, rocket, sqlx, postgres + a little bit of R. Ansible for deployment.<p>Frontend: Rescript + React. Also a significant portion of Rust&#x2F;WASM, but that was a mistake I&#x27;m trying to undo.<p>In short, statically typed and functional(-ish).
评论 #32960451 未加载
samanator超过 2 年前
Services:<p>- Web backend in go using html templates and some js<p>- Frontend in plain js and scss<p>- go server for cron jobs<p>- postgres for store<p>- redis for queueing<p>- ngingx for load balancing and ssl termination<p>- certbot for ssl<p>Each of those services is a docker image, all of those images are tied together in a docker compose file. One for dev, one for prod.<p>Terraform for object store, server, and volume infrastructure.<p>Bash scripts for deployment using ssh.
nelsonic超过 2 年前
If you want an ultra productive, easy to learn and a delight to deploy+maintain stack, consider PETAL: Phoenix, Elixir, Tailwind, Alpine.js &amp; LiveView. See: <a href="https:&#x2F;&#x2F;github.com&#x2F;dwyl&#x2F;technology-stack" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dwyl&#x2F;technology-stack</a>
评论 #32960537 未加载
franky47超过 2 年前
TypeScript monolith based on the following:<p>Server-side: Node.js, Fastify, Prisma, Handlebars (email templating)<p>Front-end: Next.js, Chakra UI, React Query, Comlink (web workers), Dexie (IndexedDB), Recharts, Formik.<p>Tooling: TypeScript, ESBuild, Jest, Playwright<p>Backing services: PostgreSQL, Redis, MailPace (transactional emails)<p>Deployment&#x2F;Ops: GitHub Actions, Clever Cloud hosting
flexdinesh超过 2 年前
Not a company but I’ve been experimenting with different tech stack options over the last 6 months to find a simple tech stack with an independent frontend and an independent backend with a hosted database. The goal is not just to build but also be able to maintain without much complexity and not spend a lot of money on hosting.<p>Backend: Building a REST&#x2F;GraphQL API that could be deployed to Cloudflare workers is a no brainer. Super cheap and incredibly fast and when you need to scale it’s still ridiculously cheap. I’d probaby go with REST with swagger + openapi-typescript to generate types on the frontend because honestly GraphQL is a lot of work for one person to maintain.<p>Frontend: Next.js server render or ISG hosted on Vercel. I&#x27;d throw Tailwind on too for rapidly styling your pages.<p>Database: Prisma with Postgres so it could be typed and works well with other tools. I still haven’t figured where to host Postgres easily. Looking for something like Mongo Atlas where I could grab the connection URL easily and has affordable free&#x2F;paid plans.
评论 #32960203 未加载
评论 #32989683 未加载
alexcroox超过 2 年前
BE - Lambda function URLs, Node, Fastify, Knex with Objection.js, RDS Proxy Postgres<p>FE - Vue2, Nuxt, Tailwind<p>Native - Capacitor 100% code sharing with web FE. Fastlane to automate build&#x2F;signing&#x2F;submissions<p>Cloudflare workers acting as a proxy for both FE cache and BE API rate limiting&#x2F;maintenance mode read from KV store.<p>I made a crude diagram: <a href="https:&#x2F;&#x2F;t20654125.p.clickup-attachments.com&#x2F;t20654125&#x2F;133842ea-4347-4e6d-9bdd-bb100887d8c8&#x2F;system-overview.drawio%20(7).png?view=open" rel="nofollow">https:&#x2F;&#x2F;t20654125.p.clickup-attachments.com&#x2F;t20654125&#x2F;133842...</a>
sideproject超过 2 年前
I try to keep things very simple + boring for Newsy (<a href="https:&#x2F;&#x2F;newsy.co" rel="nofollow">https:&#x2F;&#x2F;newsy.co</a>)<p>- Linode Ubuntu - Vue - Laravel PHP - PostgreSQL - Tailwind<p>That&#x27;s it. Keeps me focused.
评论 #33040278 未加载
评论 #32963686 未加载
hakanderyal超过 2 年前
Hosting: Bare metal on Hetzner.<p>Backend: Python &#x2F; SqlAlchemy<p>DB: Postgres<p>Cache: Redis<p>Frontend: React &#x2F; Redux &#x2F; Emotion &#x2F; Socket.io<p>Reverse Proxy: Traefik<p>Marketing Site: Next.js<p>CDN&#x2F;File hosting: Cloudflare, R2<p>Backups: Tarsnap<p>Deployment: Docker &#x2F; Docker Compose<p>Server configuration: Ansible<p>Mobile: React Native<p>Payments: Stripe<p>Email (Transactional&#x2F;Marketing): Postmark<p>If I were to start today, I would probably start with something else. But this stack has served me well for years, and still going strong with 36 apps and counting. I&#x27;m constantly evolving it as the tech progresses.
评论 #32970315 未加载
评论 #32968417 未加载
buro9超过 2 年前
These are my business, I run these:<p>* PostgreSQL database.<p>* Go for an API.<p>* Python + Django for a UI.<p>* Linode hosting, very few larger boxes rather than lots of small boxes.<p>These are not my business, I want to pay someone to do these or I want such simplicity that it&#x27;s a non-issue:<p>* Grafana Cloud for monitoring and alerts (nearly all Prometheus based, but some log based alerts and log based dashboards).<p>* A few Excel spreadsheets, which I keep as Excel to enable easier sharing with accountant. Besides, he&#x27;s probably sharing Word docs back to me.<p>* Syncthing + a NAS for file storage of the business files and accounts.<p>* I do all payments via PayPal. I wanted to use Stripe but people <i>really</i> want to pay with PayPal so I centralised there.<p>* I use Xero to track accounts, assets, etc.<p>I pay about USD 1k per month in various hosting costs, then the Xero subscription, and an annual subscription for MS Office which I consider part of the accounting costs. I use a local small business accountant who only charges GBP 250 for annual accounts.
rozenmd超过 2 年前
I run an uptime monitoring + status page service: <a href="https:&#x2F;&#x2F;onlineornot.com" rel="nofollow">https:&#x2F;&#x2F;onlineornot.com</a><p>Uptime monitoring:<p>- fly.io w&#x2F; redundancy on AWS<p>- Redis<p>- Node.js<p>- Postgres<p>Uptime monitoring frontend:<p>- Next.js<p>- Tailwind CSS<p>Status Pages:<p>- Remix (React) frontend, heavily cached on Cloudflare Workers
raphinou超过 2 年前
I&#x27;m wondering how you all ensure business continuity. To not highjack this discussion I posted a new Ask HN at <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32960255" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32960255</a>, I hope you can share your experience there
spotijk超过 2 年前
We&#x27;re building enterprise software that runs mostly on-premise as well as we&#x27;re offering some libraries for sending SMS and E-mail.<p>I try to avoid trends and only run on simple, straightforward but most of all proven and stable tech.<p>The core software is a mix of C++ and C#. Mostly moving toward C# for new features.<p>I use JetBrains TeamCity for continuous integration and testing. Where test scripts are mostly VBScript or Powershell. Using plain old self-hosted SVN for versioning.<p>Backoffice; like sales and licensing servers are all ASP classic.<p>The website is a custom WordPress template running at a shared hosting company.<p>Also, I strongly believe in &#x27;dogfooding&#x27; as in &#x27;Eat your own dogfood&#x27;. I use my own software products wherever I can. That really helps me find weaknesses and improve on usability.<p>For me it&#x27;s worth a lot if new functionality, once built, can be left alone an add value for as long as possible.
nullfish超过 2 年前
<a href="https:&#x2F;&#x2F;dddice.com" rel="nofollow">https:&#x2F;&#x2F;dddice.com</a> - 3D dice roller<p>&quot;Use boring technology&quot; - Laravel, MySQL, Fly.io for hosting<p>We automate nearly all aspects of the business as well. If a task needs to be done more than once, it&#x27;s worth automating. GitHub actions to test&#x2F;deploy, admin pages for all activities such as marketplace submissions, payouts, tax reports, chargebacks&#x2F;refunds ... If there is ever a problem with a purchase, we have ways to reply and refund all with the click of a button.<p>We recently switched from a VPS to Fly.io and PlanetScale as well and it&#x27;s been working quite nicely. As we grow to more regions, it&#x27;s nice to know we can deploy servers close to our users with a single command.
sandreas超过 2 年前
There once were discussions on HN, e.g. [1] about listennotes blog posts[2][3] - which, while maybe outdated, in my opinion are still pure gold.<p>[1]: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20985875" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20985875</a><p>[2]: <a href="https:&#x2F;&#x2F;www.listennotes.com&#x2F;blog&#x2F;the-boring-technology-behind-a-one-person-23&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.listennotes.com&#x2F;blog&#x2F;the-boring-technology-behin...</a><p>[3]: <a href="https:&#x2F;&#x2F;www.listennotes.com&#x2F;blog&#x2F;good-enough-engineering-to-start-an-internet-27&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.listennotes.com&#x2F;blog&#x2F;good-enough-engineering-to-...</a>
mceachen超过 2 年前
PhotoStructure is a self-hosted image manager.<p>The main app that my users run is written in TypeScript and runs with Node&#x2F;Express&#x2F;Vue&#x2F;Knex&#x2F;SQLite. Third party dependencies are only pulled in after a code review and are scanned with snyk and npm&#x2F;yarn audit. You can see the current list of deps here: <a href="https:&#x2F;&#x2F;github.com&#x2F;photostructure&#x2F;photostructure-for-servers&#x2F;blob&#x2F;alpha&#x2F;package.json" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;photostructure&#x2F;photostructure-for-servers...</a>. ExifTool (excellent metadata extraction) and Sharp (fast image processing via LibVips) deserve all the kudos I can muster.<p>Additionally, there are three droplets&#x2F;virtual hosts that I run:<p><a href="https:&#x2F;&#x2F;photostructure.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;photostructure.com&#x2F;</a> is a static Hugo site, served by nginx.<p><a href="https:&#x2F;&#x2F;forum.photostructure.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;forum.photostructure.com&#x2F;</a> is served by Discourse, which is a rails app.<p>The account subscription management website is written in TypeScript using Node&#x2F;Express&#x2F;Knex&#x2F;PostgreSQL, clustered by pm2, and reverse proxied for https by Caddy. Billing is currently handled via Stripe Checkout.<p>At home, I have 10+ computers that help me with customer support as well as host GitHub Actions to run continuous integration tests on all supported platforms.<p>AMA!
thewizardofaus超过 2 年前
Run a hardware based tech startup.<p>Main Website: wordpress, WooCommerce, stripe<p>Mobile Apps (iOS&#x2F;Android): Flutter, Firebase<p>WebApp: ReactJS, Firebase<p>Hardware Firmware: C
评论 #32960130 未加载
评论 #32963623 未加载
mamcx超过 2 年前
I have the tendency of pick no so-popular options (among the large dev population) but with eye to be as productive and rock-solid for solo dev.<p>- PostgreSQL + Sqlite (PG is not that uncommon anymore!) as the main stores. I refuse to add anything else as far as I can, ie: Any other NoSQL thing, so I try to go with in-built functionality like FTS, Json, etc. Decent RDBMS usage is super-efficient and scale well for most workloads<p>- Rust as main lang. Speed is nice, but having a language that reduce bugs and maintenance cost is BIG plus. In the long run, is better ($$$$$) to have a little of &quot;slow development&quot; to offset &quot;so much bug hunting!&quot;. Go &quot;fast, break things&quot; is only viable for very rich, very big companies that are after very fast growth. Most of us, take slow and methodical is much better, IMHO.<p>- htmx + tailwindcss for front-end, hands-on the BEST combo in my +20 years doing web stuff.<p>- Simple <a href="http:&#x2F;&#x2F;vultr.com" rel="nofollow">http:&#x2F;&#x2F;vultr.com</a> hosting with cloudflare on front. Thanks to Rust&#x2F;PG I even have very small ones too.<p>- nginx + nixos + circleci as the operative backbone. NixOS replace all my custom docker&#x2F;scripts&#x2F;ansible-like setup in a single thing.<p>The only thing I hate to do that have only cause problems, all the time, is Android. I wish I could do only iOS, so much easier and sane for solo dev.
评论 #33033894 未加载
j-rom超过 2 年前
Static Hugo site running on Cloudflare Pages: <a href="https:&#x2F;&#x2F;clippyfrontend.pages.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;clippyfrontend.pages.dev&#x2F;</a><p>The majority of the video processing and indexing work is done offline. I have a CLI tool that creates the data files for Hugo on my local box. Because of this, I don&#x27;t need a database. I just run the tool, git push, and the data on the site automatically updates. The frontend is vanilla HTML, JS, and CSS.
aspyct超过 2 年前
Not a software company, but photographer.<p>I use PHP and bash for all of my automation, and python for the UIs.
评论 #32960648 未加载
whkthrwawy2022超过 2 年前
I have a side project running <a href="https:&#x2F;&#x2F;words.hk" rel="nofollow">https:&#x2F;&#x2F;words.hk</a> (a Cantonese dictionary)<p>It uses a Django+sqlite backend, on a single AWS tiny instance. Frontend is mostly &quot;VanillaJS&quot;. Traffic is relatively modest at a couple thousand hits per day. Been using this setup for 8+ years now. Wouldn&#x27;t have chosen anything else, even in retrospect.
gw99超过 2 年前
Working on something at the moment more as an experiment that might turn into a product.<p>Stack is Go + SQLite + nginx + htmx.<p>I am now working on a simple orchestrator in Go that manages hundreds to thousands of these small silos across multiple servers giving people proper isolated SaaS type environments which can be entirely downloaded and run locally if desired as only two files (program + database)!
senko超过 2 年前
For <a href="https:&#x2F;&#x2F;apibakery.com" rel="nofollow">https:&#x2F;&#x2F;apibakery.com</a> (API code generator for Django and Node):<p>Frameworks&#x2F;platforms: Django&#x2F;DRF, Node, VueJS. DB: PostgreSQL, running on DigitalOcean (vps), server provisioning and deployments using Ansible.<p>For <a href="https:&#x2F;&#x2F;musicbox.com.hr" rel="nofollow">https:&#x2F;&#x2F;musicbox.com.hr</a> (music streaming service for bars, restaurants, shops, etc):<p>Django&#x2F;DRF with PostgreSQL for the API, VueJS for the frontend apps, Go for the streaming service, Redis, Go on RaspberryPi for specialized hw players. Hosting on Hetzner and DigitalOcean (vps + managed dbs), using Tailscale to have everything in a single VPN. Deployment with Ansible.<p>I find Ansible to be a hidden gem here. Nowadays its mostly overlooked for fancy k8s setups, but especially for small number of servers (a few), there&#x27;s a lot less moving parts to worry about (and they&#x27;re all explicit in the single yaml file).
shakna超过 2 年前
A book publishing pipeline, that&#x27;s... Overly simple. I see about $5-15&#x2F;month, which should set your scale expectations.<p>File sync via SyncThing.<p>Rendering to ePub, txt, PDF, HTML and DocBook via a combination of TeX, texinfo and shell.<p>And... That&#x27;s it. Everything web hasn&#x27;t been touched in about three years. Just static, apart from payment JS.
mutatio超过 2 年前
For <a href="https:&#x2F;&#x2F;encycolorpedia.com" rel="nofollow">https:&#x2F;&#x2F;encycolorpedia.com</a><p>- Extremely simple setup orchestrated with docker compose<p>- Primary &#x2F; perf sensitive areas implemented in Rust; some internal APIs and web facing stuff implemented in Go - there&#x27;s basically the colour profile page implemented in Rust, a &quot;core&quot; Rust library for shared functionality and two API servers, one in Rust, one in Go<p>- Some data juggling done in Python (nothing fancy, basically all hand-rolled)<p>- Postgres database; this is treated as immutable; there&#x27;s processes for adding data that&#x27;s rather manual due to it requiring to be curated - a Postgres dump artefact is added to git lfs<p>- Exposed via Nginx, also using Cloudflare LB<p>- HTML templating a mixture of hand-rolled and Go templates<p>- Sass for style sheets<p>- Vanilla Typescript for the frontend<p>- Hosted on VPS with the best price&#x2F;perf ratio (currently UpCloud)
malux85超过 2 年前
<a href="https:&#x2F;&#x2F;atomictessellator.com" rel="nofollow">https:&#x2F;&#x2F;atomictessellator.com</a><p>Django, Celery, Postgres, RabbitMQ, Minio, Lots of different Python environments for different scientific “stacks” (some pip based, some conda)<p>Machine learning done in pytorch, models wrapped and deployed by simple FastAPI wrappers<p>Deployment moving to be totally dockerized (maybe 90% done) because I was having a lot of trouble with deploying esoteric, fragile, scientific libs.<p>System core is a monolith, with a bunch of micro services in different repos - especially worker machines (structure optimisers, various energy calculators, etc) this way worker code can be deployed to relatively untrusted machines without having to put the entire codebase on there.<p>I applied for ycombinator this batch, I am hoping to get in, and find a cofounder at the same time
brylie超过 2 年前
Postgres, Django, and Bootstrap with sprinkles of JavaScript deployed on DigitalOcean App Platform or Dokku.
Veuxdo超过 2 年前
I can demo my (backend) tech stack while demoing the app itself: <a href="https:&#x2F;&#x2F;app.ilograph.com&#x2F;demo.ilograph.Ilograph&#x2F;Request" rel="nofollow">https:&#x2F;&#x2F;app.ilograph.com&#x2F;demo.ilograph.Ilograph&#x2F;Request</a>
评论 #32961640 未加载
batterylow超过 2 年前
I built <a href="https:&#x2F;&#x2F;PlotAPI.com" rel="nofollow">https:&#x2F;&#x2F;PlotAPI.com</a> with Django, htmx, Alpine.js, and Tailwind CSS. I was new to all 4 of those technologies and learnt whilst on the project, it was a great experience.<p>It was my first time using the Stripe API too, which has the nicest documentation I&#x27;ve ever seen!<p>I&#x27;ve recently started remaking parts of it in a static site generator I&#x27;ve written focussed on Jupyter notebooks. The first part I&#x27;ve replaced is the Docs (<a href="https:&#x2F;&#x2F;PlotAPI.com&#x2F;docs" rel="nofollow">https:&#x2F;&#x2F;PlotAPI.com&#x2F;docs</a>) - it&#x27;s a WIP!
edmundsauto超过 2 年前
I run a data warehouse for sports data, with a web frontend. Lots of integrations with 3rd party APIs to pull in data.<p>Monster server (128GB RAM, 18 core) on Hetzner ($60&#x2F;mo). CloudFlare to front everything to add a little extra security mostly - I only allow my home IP and CF to connect directly to the app&#x2F;db&#x2F;web server.<p>* MySQL, because one key source has a library that ingests easily to MySQL<p>* Postgres for the main warehouse and app data (fdw to pull in MySQL data)<p>* Django for the webapp, with celery and redis for async jobs<p>* SES for email<p>* Prefect (vs Airflow) for running data ingestion&#x2F;transform jobs<p>* DBT (triggered by prefect) for transform jobs<p>* Netlify for the static site frontend, jekyll for static site gen<p>* Google Analytics
评论 #32966510 未加载
评论 #33012647 未加载
davidbanham超过 2 年前
Majestic monolith in Go. Server rendered HTML with tailwind UI on recent products. Materialise css on legacy.<p>Google cloud platform utilising Postgres Cloud SQL, Cloud Run and Tasks. Email through AWS SES and blob storage on S3.
mhammerc超过 2 年前
App: Expo, React-Native, Typescript, Apollo Client<p>Server: Node.js, GraphQL, TypeGraphql, Apollo Server, PostgresQL 14, Redis<p>Website: Webflow (great for a good website with minimal work)<p>Hosting: Digital Ocean (it’s cheap but I prefer GCP)<p>Internal tools: Retool
评论 #32960214 未加载
ericsilly超过 2 年前
<a href="https:&#x2F;&#x2F;www.Kandoop.com" rel="nofollow">https:&#x2F;&#x2F;www.Kandoop.com</a>, a productivity platform (better Evernote + Trello + WordPress-ish for custom feeds). It does a bunch of good stuff.<p>AWS, PostgreSQL + Redis + S3, BE is 100% Python-based Lambda functions, FE is browser-native WebComponents (no frameworks), mobile app is the same FE code wrapped with Cordova, on Google Play and Apple App Store.<p>Serverless functions are my #1 tip to reduce low-value maintenance time for solo devs &#x2F; small teams.
mickduprez超过 2 年前
Sveltekit I&#x27;ve only just begun the journey but I&#x27;m sold! After trying everything from Smalltalk&#x2F;Lisp, PHP, ASP.Net and React et al and even bare bones web components, Svelte and Sveltekit has hit a sweet spot for me as a one man band. It handles both server and client side in one app and can be fine tuned to get the most of both server side and client side rendering.<p>For desktop I mainly use C# on Windows but would love to dedicate more time to Smalltalk, a very cool concept and language.
nwienert超过 2 年前
I just wrote something relevant:<p><a href="https:&#x2F;&#x2F;tamagui.dev&#x2F;docs&#x2F;intro&#x2F;compiler" rel="nofollow">https:&#x2F;&#x2F;tamagui.dev&#x2F;docs&#x2F;intro&#x2F;compiler</a><p>I use:<p>- Tamagui + React + React Native<p>- Hasura + Postgres + GQty[1]<p>- A long-fought after monorepo with a bunch of stuff to make this all dev nicely and deploy with a push (for now Docker Swarm + Hetzner. GCloud + Kubes was too heavy, tried Fly a while ago and it was a bit too green).<p>[1] <a href="https:&#x2F;&#x2F;gqty.dev" rel="nofollow">https:&#x2F;&#x2F;gqty.dev</a>
yodon超过 2 年前
Frontend: React&#x2F;NextJS hosted in Vercel (TypeScript + mix of Tailwind &amp; Bootstrap)<p>Backend: Orleans + .NET Minimal API&#x27;s hosted in Azure Container Apps<p>Real-time PubSub: SignalR<p>Deployment: GitHub Actions
评论 #32961011 未加载
amerkhalid超过 2 年前
I don&#x27;t have a company but whenever I used to work on side-projects that I thought would lead to a company, I would use Laravel + MySQL + VPS. And whenever I worked on projects just for fun, I would use Nodejs + React + MongoDB.<p>The reason for this was because PHP developers are cheaper. So if project takes off, it will be cheaper to hire PHP devs.<p>JavaScript is better as an employee since JS&#x2F;Node&#x2F;React devs are more in demand and pays better.
tomtomtomtomtom超过 2 年前
productivity saas app: Frontend: html&#x2F;css&#x2F;js (all vanilla) Backend: windows server, c#, .net Database: MySQL Infrastructure: all at AWS (EC2, RDS, S3, Cloudfront, ACM, Route53) Email: postmark Blog en marketing website: static (S3+cloudfront), CMS custom build Monitoring: uptimerobot Ip to Location lookup: ip2location User manual: Manula Payements: FastSpring and 2Checkout Customer support: Freshdesk
评论 #33034250 未加载
moxplod超过 2 年前
web app: c#, .net 6, mvc, postgres, redis, azure, github (repo and actions)<p>marketing site: hugo, netlify<p>tools: cloudflare, namecheap, mailjet, stripe, twilio, sentry, papertrail, slack
strzibny超过 2 年前
Rails + Hotwire + PostgreSQL. I am now basically making a template out of this for myself <a href="https:&#x2F;&#x2F;businessclasskit.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;businessclasskit.com&#x2F;</a>.<p>And I self-host with a little bit of Bash on single VM as I described in Deployment from Scratch.<p>The minimalism might not stay forever, but before you hit any real success, you should keep things plain, boring, and maintainable.
jbarham超过 2 年前
I run <a href="https:&#x2F;&#x2F;www.slickdns.com" rel="nofollow">https:&#x2F;&#x2F;www.slickdns.com</a> (DNS hosting) and <a href="https:&#x2F;&#x2F;www.youpatch.com" rel="nofollow">https:&#x2F;&#x2F;www.youpatch.com</a> (pixel quilt patterns).<p>Web backend: Django<p>DNS&#x2F;Web API backends: Go, Flask, Tornado<p>DB: Postgres, SQLite<p>Cache: Redis<p>Frontend: htmx (via jQuery, Backbone.js and Vue.js)<p>Marketing site: Cloudflare Pages<p>Hosting: Mix of Heroku, Linode and Fly<p>Backups: Backupsy<p>Dev: Linux and Docker Compose<p>Payments: Stripe and PayPal (reluctantly)
welder超过 2 年前
Python, Flask, Go, Postgres, Redis, SSDB(Redis on SSDs instead of RAM), GitHub Actions, DigitalOcean, WakaQ(a minimal Celery), Backbone.js(love React but it&#x27;s for bigger teams than me).<p>I wrote about parts of it here: <a href="https:&#x2F;&#x2F;wakatime.com&#x2F;blog&#x2F;category&#x2F;engineering" rel="nofollow">https:&#x2F;&#x2F;wakatime.com&#x2F;blog&#x2F;category&#x2F;engineering</a>
ashz8888超过 2 年前
It depends on your requirements. I have been building www.confluo.app, a social task assistant, in my part-time for about 2 years now. I wanted it:<p>1) to target both iOS and Android devices<p>2) to be real-time for social networking and collaborative tasks<p>3) available in both offline and online modes<p>4) to have no cost of developing and testing with small audience.<p>Turned out I could achieve all of the above using Flutter + Firebase (Auth &amp; Firestore).
255kb超过 2 年前
I keep it simple and stay as much as possible in my comfort zone:<p>Desktop app: Electron + Angular + Express + Firebase Remote Config CLI: Node.js app using Oclif and Express In a basic monorepo using Lerna<p>Website: Next.js Website&#x27;s hosting: Firebase hosting + CloudFlare<p>CI: GitHub Actions<p>Project management: GitHub Projects<p>Support: Email, Discord, GitHub Discussions<p>Project is <a href="https:&#x2F;&#x2F;mockoon.com" rel="nofollow">https:&#x2F;&#x2F;mockoon.com</a>
nyellin超过 2 年前
We&#x27;re very much not a company of one anymore, but I used Unicorn Platform for our startups website (<a href="http:&#x2F;&#x2F;robusta.dev" rel="nofollow">http:&#x2F;&#x2F;robusta.dev</a>)<p>It&#x27;s optimized for building a decent looking startup website in half an hour.<p>We now have an in house designer and frontend team so the whole thing will be replaced soon... But it got us fairly far.
cmews超过 2 年前
Sveltekit&#x2F;Tailwind for the main website (hosted on cloudflare)<p>Elixir&#x2F;Phoenix&#x2F;Liveview&#x2F;Postgres with alpine.js and tailwind for the dashboard overview for the operations analytics (hosted on fly.io)<p>All code and pipelines on GitHub<p>Currently building as well flutter apps but it’s taking a lot of time in comparison with the webapp and operations dashboard
xupybd超过 2 年前
Technically I&#x27;m in a company of 50 plus but as the sole dev I think I might qualify.<p>E-commerce is Noopcommerce.<p>New stack is the SAFE stack with postgress as the db. Flyway for database migration. Docker deployments with a gitlab CI pipeline.<p>Soon to add Apache Kafka for message flow.<p>Initial development with this stack is not especially fast but bug fixes and changes are so easy.
d5ve超过 2 年前
LAMP.<p>Linux, AWS, MySQL, Perl<p>HTML still works it turns out!
评论 #32963648 未加载
评论 #32960448 未加载
JensRantil超过 2 年前
A friend of mine posted his one-developer tech startup details here: <a href="https:&#x2F;&#x2F;medium.com&#x2F;dreamwod-tech&#x2F;how-i-built-my-tech-startup-as-a-solo-developer-45390f460002" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;dreamwod-tech&#x2F;how-i-built-my-tech-startup...</a>
caviv超过 2 年前
Hi, I use Cloud Services (AWS, Azure etc&#x27;) for a simple machine. Then Caddy as webserver (with https from let&#x27;s encrypt) phpfpm for the code.<p>That&#x27;s it. Very easy.<p>Here is a sample: <a href="https:&#x2F;&#x2F;teusonho.org" rel="nofollow">https:&#x2F;&#x2F;teusonho.org</a> - analyze your dreams in Portuguese.
jrslv超过 2 年前
Tech stack of Binocs the CLI-first uptime monitoring (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32923326" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=32923326</a>)<p>- Golang, Redis, TimescaleDB - an absolute game changer for time-series data<p>- Fargate, SQS, Lambdas in AWS<p>- Docker and GitHub Actions
boompassie超过 2 年前
As an intermediate Italian learner (with a native Italian speaking partner) I think its pretty good. The main challenge I have is the speech to text when I speak back in Italian - it doesn&#x27;t capture what I&#x27;m saying very well, often misses words altogether.
p0d超过 2 年前
I have been making money for 14 years with PHP&#x2F;MySQL&#x2F;jQuery . I can&#x27;t remember how old jQuery is, probably started with vanilla Javavscript. I moved from Hostgator web hosting to Hetzner Cloud along the way. My server costs 10 euro per month.
GunjanKarun超过 2 年前
- Firebase for hosting, DB (Firestore), analytics, Cloud functions (NodeJS) - Angular for front-end - Ionic for bundling the Angular app for mobile<p>One app is a multi-user game that 60K+ users play regularly Other is a productivity app available on multiple platforms
rishsriv超过 2 年前
Building a no-code data workspace<p>Backend: Cloudflare Durable Objects for the consumer-facing app, Python cronjobs on a GCP hosted VM for background task processing, FastAPI for self-hosted vector search<p>Frontend: Nextjs. Antd as UI framework, Highcharts for charts. Hosted on Vercel
yangcheng超过 2 年前
I have a wide tech foot print but boring stack.<p>website+e-commence: shopify liquid, later moved to typescript+hydrogen<p>embedded Android: Kotlin<p>mobile app: Flutter<p>Backend: go + postgres on heroku, with some lambdas for periodical work.<p>The thing surprised me most is the amount of downtime Github and heroku had in past year.
flyinglizard超过 2 年前
C# on Azure Functions for backend. Azure managed SQL Server for storage. Azure managed Redis for caching. Azure Application Insights for monitoring. Forest Admin front end.<p>Quite a pleasant experience overall for what I need.
评论 #32960843 未加载
评论 #32961034 未加载
jasfi超过 2 年前
For my latest project:<p>Frontend: React&#x2F;Typescript<p>Backend: React&#x2F;Typescript, Nim<p>DB: Postgres<p>Hosting: Namecheap, Cloudflare, ZAP-Hosting
评论 #32960369 未加载
danellis超过 2 年前
Front end: TypeScript, Angular, Apollo, Material Back end: Scala, ZIO, zio-http, Pulsar, Keycloak, Postgres Hosting: Kubernetes on Digital Ocean, GitLab Pages Tools: Hugo, Twilio, Namecheap, Mailgun
gatvol超过 2 年前
Generally do either API + SPA for app like things, or something in between that and full static<p>Docker + Alpine Nginx AWS: ECS, REDIS, RDS&#x2F;PG Backend: Django &#x2F; DRF Front End: Next &#x2F; React IaC: Pulumi
BADCAFE超过 2 年前
Main website: bootstrap &amp; vanilla JS.<p>Infra: AWS and serverless application model (SAM)<p>Frontend app: react<p>Backend: python + lambda, step functions, dynamodb, and sagemaker.<p>CI&#x2F;CD: GitHub actions<p>Super stable, multi-region, low maintenance and near infinitely scalable.
alxmng超过 2 年前
Rails, SQLite, and Linode.
nixcraft超过 2 年前
OS: Ubuntu or Alpine Linux<p>Web Server: Nginx<p>Container: LXD or Docker<p>Backup: FreeBSD with zfs<p>Server-side: PHP and Python<p>CMS&#x2F;Web framework: WordPress, MediaWiki and Django<p>Database: Postgresql and MySQL&#x2F;MariaDB<p>Cloud: Linode and AWS<p>Currently learning: Dart and Flutter to build a cross-platform app for my next idea.
thechangelog超过 2 年前
Rails + mysql, with Sorbet for Ruby type safety React Native for our mobile app Typescript for all JS<p>Hosted on Linode<p>Boring but hella productive and stable, and lots of stability and depth in the ecosystem.
hkhanna超过 2 年前
<a href="https:&#x2F;&#x2F;getmagistrate.com" rel="nofollow">https:&#x2F;&#x2F;getmagistrate.com</a> runs on Django + Render + Tailwind + Alpine.js + htmx.<p>Great stack for the solo dev imo.
ecmascript超过 2 年前
Sorry for being overdue! I have just asked once a year when I remembered it, love the fact that someone else appreciated it enough to continue asking when I forgot
kosolam超过 2 年前
Microservices architecture with Java Micronaut postgres firecracker Haproxy bash Prometheus+loki+grafana+node_exporter+promtail Frontend: Next.js using typescript
评论 #32960736 未加载
yread超过 2 年前
Mostly boring tech: Hetzner dedicated server, .NET 5 web app interfacing with some C++ libraries, Sqlite for database, Jquery frontend. Pull backups with borg
bcrosby95超过 2 年前
We fluctuate between company of one and company of a handful.<p>We use Java, Spring, MySQL, Redis, and a couple dozen colocated servers. Ansible is used to manage the servers.
marcusbuffett超过 2 年前
I run <a href="https:&#x2F;&#x2F;chessmadra.com" rel="nofollow">https:&#x2F;&#x2F;chessmadra.com</a><p>React + Typescript frontend<p>Rust backend<p>Architecture stuff: kubernetes, Kong, postgres, all hosted on DO
评论 #32961094 未加载
bjornsing超过 2 年前
I would have imagined PaaS offerings like Heroku (where you get an SRE team for cheap) would be popular, but it seems not. Can anyone explain why?
keizo超过 2 年前
Home grown crm&#x2F;erp. Django&#x2F;mysql started in 2008. Recently migrated to google cloud run. Adding tailwind, htmx, alpine js to modernize.
skbohra123超过 2 年前
Have a Monitoring Solution product for Solar Plant. Stack - Django, Cassandra, Redis, KairosDB, Celery, Bootstrap, Jquery etc.
thunkshift1超过 2 年前
Nice! What kind of sports data? Is it usually enthusiasts who pay for access to this data? How do you charge your customers?
desmondrd超过 2 年前
Compliance software B2B<p>Backend<p>- Auth: stytch<p>- DB: Postgres in RDS (moving to Railway)<p>- Api: Node on Heroku (moving to Railway)<p>- Images: Fire Store (ugh. Maybe move to Cloudflare images)<p>Front end<p>- SPA: React served by Heroku (moving to Railway)
soheilpro超过 2 年前
NodeJS &#x2F; TypeScript &#x2F; Express &#x2F; React &#x2F; Tailwind &#x2F; PostgreSQL &#x2F; RabbitMQ &#x2F; Docker
wagslane超过 2 年前
Hugo, Go, K8s, PubSub, Vue, Sendgrid, Postgres<p>I love the stack, but I was already really experienced with these tools which helped.
ohmanjjj超过 2 年前
AngularJS 1.8 and Falcon Python API backend. Redis and Postgres. Running an 8 figure ARR business on this stack.
hackarama超过 2 年前
HTML&#x2F;CSS&#x2F;JavaScript - Backend APIs are either in Spark Java framework or Python&#x27;s Flask
Gud超过 2 年前
Django, considering switching to Flask for more flexibility. The server is running nginx on FreeBSD.
评论 #32968794 未加载
0xblinq超过 2 年前
Not really a company, just a side project used by me and some friends: Laravel + Unpoly + Tailwind.
muditsahni超过 2 年前
Trying to build a small scaled e-commerce platform like shopify.<p>Backend: spring boot, kotlin<p>Frontend: reactjs, nextjs, typescript
pl-94超过 2 年前
Micro services: Traefik + Docker<p>Web stack: nextjs, symfony or fastapi, netlify<p>Monitoring: Matomo, metabase, signoz, prometheus.
asdojasdosadsa超过 2 年前
main language: JavaScript<p>on top: TypeScript, Node, Express, React, Postgres Other: Webpack, yarn, scss<p>other: Heroku, GitHub
评论 #32960117 未加载
claudiug超过 2 年前
ruby + rails + hotwire + postgres + redis + sidekiq + heroku&#x2F;DO + docker + dokku
spapas82超过 2 年前
Centos&#x2F;Postgres&#x2F;Django&#x2F;jQuery&#x2F;Bootstrap.
juangacovas超过 2 年前
Linux, HAProxy + Lighttpd + PHP (fpm) + MariaDB + Redis
LeonB超过 2 年前
- Ubuntu VMs at digital ocean<p>- Nginx webserver<p>- asp.net &#x2F; dotnet &#x2F; c#<p>- vanilla js
farmin超过 2 年前
Ionic&#x2F;Angular with Firebase.
评论 #32961027 未加载
pcdoodle超过 2 年前
Xojo<p>AWS EC2 Debian Linux<p>Let&#x27;s Encrypt
lee101超过 2 年前
I run <a href="https:&#x2F;&#x2F;text-generator.io" rel="nofollow">https:&#x2F;&#x2F;text-generator.io</a> competing with OpenAI. I used to use kubernetes on Google cloud, but now run it from my house behind a CloudFlare tunnel believe it or not Using my own GPUs allows me to undercut them with around 10x cheaper pricing.<p>The product is built with some open source and some retrained models, it analyses input links or linked images with tesseract&#x2F;unified IO &#x2F; OFA &#x2F; beautiful soup so it can answer questions about images&#x2F;receipts etc.<p>The site itself is on app engine standard python with stripe&#x2F;firebase UI for auth, which is running very cost effectively.<p>In future in planning to layer on more content understanding eg audio with whisper etc, then milvus&#x2F;haystack for lookup phases for more factual question answering, then some work on automated retraining and regeneration etc for hard cases, then searching other systems&#x2F;internal code and logic execution etc, eventually with a few more steps I&#x27;m hoping it will feel like I made AGI in a rack in my house lol...
评论 #32962588 未加载
评论 #32961176 未加载
评论 #32960712 未加载
评论 #32960307 未加载