One should note that the exact implementation can be bank/system dependent, but the general idea in the OIS/Libor world was
First bootstrap OIS curve. It is a self-discounting curve, i.e. both discount factors and forward are computed using same curve. Conceptually, it replaces the self-discounting Libor curve.
Assuming perfect collateralisation in the same currency, strip standard projection curve (3m for US, 6m for EUR and GBP etc), using the standard IRSs for such fixed/floating swap. It was currency dependent. E.g. for USD it was 3m float vs 6m fixed, for Euro it was 6m float vs 1y fixed etc. Ois curve, stripped at step 1) will be used for discounting.
This gives you the "standard" tenor projection (forward) curve in corresponding currency, assuming cash collateral hence OIS discounting.
- Now you can strip projection curves for all other non-standard tenors, e.g. 1m or 6m or 12m for USD.
The products from which you will be stripping will strongly depend on the currency. It can be a basis floating/floating swap against the standard tenor (e.g. 3m/6m swaps for USD), or direct swaps against 6m USD. Ois curve, stripped at step 1 will be used for discounting in ALL cases, only projection curve will be built.
Importantly, the internal implementation of such projection curve can be either as a yield curve on its own (yield or DF interpolator) or a basis curve to another curve, e.g. standard tenor swap. The pricing result will be same for the observable swaps, but risk decomposition will be different. Practically, this is decided based on what instruments really drive the market, basis swaps (in which case non standard projection curve would be a basis curve) or straight swaps with non-standard basis. It is possible that different time segments of the curve are interpolated differently because of that.
To conclude, prod-grade set up of the discount curve is very different from what you see in the textbooks.